ターゲットを使用して、操作するデータ フィールドを選択する
Power BI 編集モードの [ フィールド] ウィンドウ には、モデル上のすべてのテーブルとそのすべてのデータ フィールドが表示されます。 データ フィールド内のデータを並べ替え、フィルター処理、またはスライスして、レポート、ページ、またはビジュアルでのデータの表示方法に影響を与えることができます。
Power BI 埋め込み分析フィルター、スライサー、または並べ替えには、操作するデータ フィールドを指定するターゲット オブジェクトが必要です。 ITarget を使用して、次の場合にターゲット データ フィールドを指定します。
- IFilter インターフェイスを使用してフィルターを構築する
- 読み込み時にスライサーを設定する
- ビジュアルの並べ替え
- 視覚化にデータ フィールドを追加する
ターゲットの種類
データ フィールドには、列、階層レベル、 集計 列または階層レベル、または 計算メジャーを指定できます。 インターフェイスのターゲットの種類は 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>"
}
Measure
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 テーブルの [リージョン] 列に対して機能します。
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 階層の月レベルで動作するため、レポート内のその階層レベルの下に西リージョンのデータのみが表示されます。
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"
};