Power BI 編集モードでは、フィールド ペイン、モデル上のすべてのテーブルとそのすべてのデータ フィールドが表示されます。 データ フィールド内のデータを並べ替え、フィルター処理、またはスライスして、レポート、ページ、ビジュアルでのデータの表示方法に影響を与えることができます。
Power BI 埋め込み分析フィルター、スライサー、または並べ替えには、操作するデータ フィールドを指定するターゲット オブジェクトが必要です。 ITarget を使用して、次の場合にターゲット データ フィールドを指定します。
- IFilter インターフェイスを使用してフィルターを構築する
- 読み込み時にスライサーを設定
- ビジュアル を並べ替える
- 視覚化 にデータ フィールドを追加する
ターゲットの種類
データ フィールドには、列、階層レベル、 集計 列または階層レベル、計算 メジャー 、 またはビジュアル計算を指定できます。 次のターゲットは、 IBaseTarget インターフェイスを実装します。
IColumnTargetIHierarchyLevelTargetIMeasureTargetIColumnAggrTargetIHierarchyLevelAggrTargetIVisualCalculationTarget
IVisualCalculationTarget は、対象となるビジュアルにのみ追加できます。
IHierarchyLevelAggrTarget、 IColumnAggrTarget、 IMeasureTarget、および IVisualCalculationTarget は、非表示フィールドとして ( addDataField API を使用して) 追加できます。
ビジュアル計算
IVisualCalculationTarget を使用して、いくつかの DAX を使用してターゲット ビジュアルにビジュアル計算を追加します。 ビジュアル計算の名前は常に一意です。 既存の名前を使用して視覚的な計算を追加しようとすると、システムによって名前が一意になります。
target: {
$schema: "http://powerbi.com/product/schema#visualCalculation",
name: "<visual calculation name>",
daxExpression: "<dax>",
hidden?: boolean
}
コラム
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,
hidden?: boolean
}
集計関数
列レベルと階層レベルのターゲットに集計関数を指定できます。
aggregationFunction 変数は省略可能であり、指定しない場合、データ フィールドは既定の Sum 集計関数を使用します。
aggregationFunction でサポートされているその他の値は次のとおりです。
AvgDoNotSummarizeCountCountNonNullMaxMedianMinStandardDeviationVariance
集計列
IColumnAggrTarget
target: {
$schema: "http://powerbi.com/product/schema#columnAggr",
table: "<table name>",
column: "<column name>",
aggregationFunction: "<aggregation function>", // Optional, default is Sum.
percentOfGrandTotal?: boolean,
hidden?: 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,
hidden?: 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"
};