CALCULATE 函數
在指定之篩選修改過的內容中評估運算式。
語法
CALCULATE(<expression>,<filter1>,<filter2>…)
參數
詞彙 |
定義 |
---|---|
expression |
要評估的運算式。 |
filter1,filter2,… |
(選擇性) 以逗號分隔之布林運算式的清單或定義篩選的資料表運算式。 |
當做第一個參數使用的運算式基本上與量值相同。
下列限制會套用到當做引數使用的布林運算式:
運算式無法參考量值。
運算式無法使用巢狀 CALCULATE 函數。
運算式無法使用掃描資料表或傳回資料表的任何函數,包括彙總函式。
不過,布林運算式可以使用查閱單一值或計算純量值的任何函數。
傳回值
屬於運算式結果的值。
備註
如果資料已經過篩選,CALCULATE 函數會變更資料已篩選的內容,然後評估您指定之新內容中的運算式。 對於在篩選引數中使用的每個資料行而言,都會移除該資料行的所有現有篩選,並改為套用篩選引數中所使用的篩選。
範例
若要計算目前轉售商銷售對所有轉售商銷售的比率,您要在樞紐分析表中加入計算目前資料格之銷售總和的量值,然後將該總和除以所有轉售商的銷售總額 (分母)。 為確保無論樞紐分析表是篩選還是群組資料,分母都會維持相同,表示分母的公式部分必須使用 ALL 函數來清除任何篩選並建立正確的總計。
下表顯示使用程式碼區段中的公式建立名稱為 All Reseller Sales Ratio 之新量值時的結果。
若要查看其運作方式,請將 CalendarYear 欄位加入至樞紐分析表的 [資料列標籤] 區域中,然後將 ProductCategoryName 欄位加入至 [資料行標籤] 區域中。 接著,將新量值加入至樞紐分析表的 [值] 區域。 若要將數字顯示為百分比,請將百分比數字格式套用到包含新量值 All Reseller Sales Ratio 之樞紐分析表的區域中。
All Reseller Sales |
資料行標籤 |
|
|
|
|
---|---|---|---|---|---|
資料列標籤 |
Accessories |
Bikes |
Clothing |
Components |
總計 |
2005 |
0.02% |
9.10% |
0.04% |
0.75% |
9.91% |
2006 |
0.11% |
24.71% |
0.60% |
4.48% |
29.90% |
2007 |
0.36% |
31.71% |
1.07% |
6.79% |
39.93% |
2008 |
0.20% |
16.95% |
0.48% |
2.63% |
20.26% |
總計 |
0.70% |
82.47% |
2.18% |
14.65% |
100.00% |
=( SUM('ResellerSales_USD'[SalesAmount_USD]))
/CALCULATE( SUM('ResellerSales_USD'[SalesAmount_USD])
,ALL('ResellerSales_USD'))
分母中的 CALCULATE 運算式會啟用總和運算式,在計算中包含所有資料列。 這樣會覆寫運算式的分子部分所存在之 CalendarYear 和 ProductCategoryName 的隱含篩選。
相關函數
CALCULATE 函數需要傳回單一值的運算式當做其第一個引數,而 CALCULATETABLE 函數則採用值的資料表。