ターゲットを使用して、操作するデータ フィールドを選択する

Power BI 編集モードでは、フィールド ペイン、モデル上のすべてのテーブルとそのすべてのデータ フィールドが表示されます。 データ フィールド内のデータを並べ替え、フィルター処理、またはスライスして、レポート、ページ、ビジュアルでのデータの表示方法に影響を与えることができます。

Power BI 埋め込み分析フィルター、スライサー、または並べ替えには、操作するデータ フィールドを指定するターゲット オブジェクトが必要です。 ITarget を使用して、次の場合にターゲット データ フィールドを指定します。

ターゲットの種類

データ フィールドには、列、階層レベル、集計 列または階層レベル、または計算 メジャーを指定できます。 ITarget インターフェイスのターゲットの種類は次のとおりです。

  • IColumnTarget
  • IHierarchyLevelTarget
  • IMeasureTarget
  • IColumnAggrTarget
  • IHierarchyLevelAggrTarget

コラム

IColumnTarget を使用して、テーブル内の指定した列を対象とします。

target: {
    $schema: "http://powerbi.com/product/schema#column",
    table: "<table name>",
    column: "<column name>"
}

階層レベル

IHierarchyLevelTarget を使用して、テーブル内の階層内の指定された階層レベルをターゲットにします。

target: {
    $schema: "http://powerbi.com/product/schema#hierarchyLevel",
    table: "<table name>",
    hierarchy: "<hierarchy name>",
    hierarchyLevel: "<hierarchy level name>"
}

測る

IMeasureTarget を使用して、テーブル内の指定したメジャーを対象とします。 ターゲットがビジュアルにバインドされ、その値が総計のパーセントとして表示される場合、percentOfGrandTotal の値は true に設定されます。

target: {
    $schema: "http://powerbi.com/product/schema#measure",
    table: "<table name>",
    measure: "<measure name>",
    percentOfGrandTotal?: boolean
}

集計関数

列レベルと階層レベルのターゲットに集計関数を指定できます。 aggregationFunction 変数は省略可能であり、指定しない場合、データ フィールドは既定の Sum 集計関数を使用します。 aggregationFunction でサポートされているその他の値は次のとおりです。

  • Avg
  • DoNotSummarize
  • Count
  • CountNonNull
  • Max
  • Median
  • Min
  • StandardDeviation
  • Variance

集計列

IColumnAggrTarget 使用して、テーブル内の指定した列に集計関数を指定します。 ターゲットがビジュアルにバインドされ、その値が総計のパーセントとして表示される場合、'percentOfGrandTotal' の値は true に設定されます。

target: {
    $schema: "http://powerbi.com/product/schema#columnAggr",
    table: "<table name>",
    column: "<column name>",
    aggregationFunction: "<aggregation function>", // Optional, default is Sum.
    percentOfGrandTotal?: boolean
}

集計階層レベル

IHierarchyLevelAggrTarget を使用して、テーブル内の階層内の指定した階層レベルで集計関数を指定します。 ターゲットがビジュアルにバインドされ、その値が総計のパーセントとして表示される場合、'percentOfGrandTotal' の値は true に設定されます。

target: {
    $schema: "http://powerbi.com/product/schema#hierarchyLevelAggr",
    table: "<table name>",
    hierarchy: "<hierarchy name>",
    hierarchyLevel: "<hierarchy level name>",
    aggregationFunction: "<aggregation function>", // Optional, default is Sum.
    percentOfGrandTotal?: boolean
}

次のコード例では、target オブジェクトを使用して、フィルターを実行する必要があるデータ フィールドを指定します。

列ターゲットの例

次のコード例では、列ターゲットを持つ 基本フィルター をレポートに適用します。 このコードは、Geo テーブルの Region 列に対して機能し、西 リージョンのデータのみがレポートに表示されるようにします。

let filter = {
    $schema: "http://powerbi.com/product/schema#basic",
    target: {
        $schema: "http://powerbi.com/product/schema#column",
        table: "Geo",
        column: "Region"
    },
    operator: "In",
    values: ["West"]
};

階層レベルのターゲットの例

次のコード例では、階層レベルのターゲットを持つ基本フィルターをレポートに適用します。 このコードは、Sales テーブルの OrderDate 階層の Month レベルに対して機能し、西 リージョンのデータのみがレポートの階層レベルの下に表示されるようにします。

let filter = {
    $schema: "http://powerbi.com/product/schema#basic",
    target: {
        $schema: "http://powerbi.com/product/schema#hierarchyLevel",
        table: "Sales",
        hierarchy: "OrderDate",
        hierarchyLevel: "Month"
    },
    operator: "In",
    values: ["West"]
};

メジャー ターゲットの例

次のコード例では、高度なフィルター とメジャー ターゲットをビジュアルに適用します。 このコードは、SalesFact テーブルの Total Category Volume メジャーに対して機能するため、値が空白でない場合にのみ表示されます。

let filter = {
    $schema: "http://powerbi.com/product/schema#advanced",
    target: {
        $schema: "http://powerbi.com/product/schema#measure",
        table: "SalesFact",
        measure: "Total Category Volume"
    },
    filterType: models.FilterType.AdvancedFilter,
    logicalOperator: "And",
    conditions: [{
        operator: "IsNotBlank"
    }]
}

集計列ターゲットの例

次のコードでは、Sales テーブルの Store 列の値の合計である列集計ターゲットを定義します。

let columnAggregation = {
    $schema: "http://powerbi.com/product/schema#columnAggr",
    table: "Store",
    column: "Sales",
    aggregationFunction: "Sum"
};