CALCULATE
語法結構:
CALCULATE(<expression>,<filter1>,<filter2>…)
第一個參數為表達式,可以執行各種聚合函數;
第二個參數為篩選器,可為空,通過篩選器得出需要進行計算的對象,再通過表達式計算出結果。
舉個例子:
實操舉例:數據集:商品銷售明細表.xlsx
關注公眾號獲取數據:耶濃薄荷
其中‘省市.省份’以及‘銷售額’為表字段,‘河北省銷售額’、‘銷量’、‘河北省銷量’為度量值。
河北省銷售額?=
CALCULATE(SUM('商品銷售明細表'[銷售額]),'商品銷售明細表'[省市.省份]="河北省")
銷量?= COUNTROWS('商品銷售明細表')
河北省銷量?= CALCULATE([銷量],'商品銷售明細表'[省市.省份]="河北省")
從這里可以明顯看出CALCULATE()的作用。
CALCULATE函數是PowerBI 中常用的函數,Filter函數經常與CALCULATE()結合使用。
Filter
語法結構:
FILTER(<table>,<filter>)
第一個參數為表,
第二個參數為篩選器,
該函數結果為一張表,創建度量值時無法單獨使用,需結合其他函數。
舉個例子:
河北省銷售額2 =
CALCULATE(SUM('商品銷售明細表'[銷售額]),
FILTER(ALL('商品銷售明細表'[省市.省份]),
'商品銷售明細表'[省市.省份]="河北省"))
這里的度量值‘河北省銷售額2’等同于上述‘河北省銷售額’。
乍一看似乎麻煩了很多,但是,當互相關聯的表多了之后,使用Filter函數就會顯得方便許多。
D010101銷售額 =
CALCULATE(SUM('商品銷售明細表'[銷售額]),
FILTER(ALL('省市'),
'省市'[門店編碼]="D010101"))
D010109銷售額 =
CALCULATE(SUM('商品銷售明細表'[銷售額]),
FILTER(ALL('省市'),
'省市'[門店編碼]="D010109"))