Power BI DAX 入門筆記
2020-09-19
DAX 是學習 Power BI 從初級進入中級的門檻,但學習門檻上不是那麼直覺。但藉由筆記的方式逐一攻略與紀錄教學上的範例,期待能力克 DAX ,讓使用 Power BI 的技能更進一階。
說明
DAX 語法
Calculate
ANZ Revenue =
CALCULATE(
[Revenue],
Customer[Country-Region]
IN {
"Australia",
"New Zealand"
}
)
With Filter
Revenue High Margin Products =
CALCULATE(
[Revenue],
FILTER(
'Product',
'Product'[List Price] > 'Product'[Standard Cost] * 2
)
)
區別總體與個別
❌ 錯誤範例
Customer Segment =
VAR CustomerRevenue = SUM(Sales[Sales Amount])
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
✔ 正確範例
Customer Segment =
VAR CustomerRevenue = CALCULATE(SUM(Sales[Sales Amount]))
RETURN
IF(CustomerRevenue < 2500, "Low", "High")
分組資料的極值項目
MaxHP = CONCATENATEX(
CALCULATETABLE('Pokemon', Pokemon[HP] = MAX('Pokemon'[HP]))
,'Pokemon'[Name_CT]
, ",")
Power BI Desktop 2021 Sep 以後才支援在 Filter 使用彙總函式
VAR
使用變數能減低重複運算的造成的效能浪費
Revenue YoY % =
var RevenuePriorYear =
CALCULATE(
[Revenue],
SAMEPERIODLASTYEAR('Date'[Date])
)
return
DIVIDE(
[Revenue] - RevenuePriorYear,
RevenuePriorYear
)
Rankx
計算資料欄的排名,但總計不顯示值。
Product Quantity Rank =
IF(
HASONEVALUE('Product'[Product]),
RANKX(
ALL('Product'[Product]),
[Quantity],
,
,
DENSE
)
)
Related
Containsstrnig
可以用於新建 Measures 或者 Columns ,檢查字串或者欄位中的字串是否包括特定字串。