使用目標來選取要處理的數據欄位
在 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>"
}
量
使用 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 數據行,因此報表中只會顯示 West 區域中的數據。
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 層級,因此只有報表中該階層層級下 West 區域中的數據才會顯示。
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"
};