使用 DAX 函式
DAX 函式程式庫包含數百個函式,皆針對特定目標而設計。
因為 DAX 源自 Microsoft Excel 2010 的 Power Pivot 增益集,所以 Excel 包含 DAX 中超過 80 個函式。 這是 Microsoft 刻意為之的設計策略,以便確保 Excel 使用者可以透過 DAX,快速提升生產力。
但是也有許多函式不存在 Excel 中,因為此類函式為資料模型專用:
- 關聯性瀏覽運算子
- 篩選內容修改函式
- 迭代器函式
- 時間智慧函式
- 路徑函式
提示
若要搜尋與 DAX 函式相關的文件,請在網頁搜尋中輸入關鍵字 DAX,後面接著函式名稱。
如需詳細資訊,請參閱 DAX 線上函式參考。
源自 Excel 的函式
下列各節會說明一些實用的函式,因為它們也出現在 Excel 中,所以您可能已經很熟悉。
IF
DAX 函式會測試是否符合提供為第一個引數的條件。 若條件為 TRUE,傳回一個值;若條件為 FALSE,則傳回另一個值。 函式的語法如下:
IF(<logical_test>, <value_if_true>[, <value_if_false>])
提示
若在文件中,函式引數以方括弧括住時,代表可有可無。
若 logical_test 計算出來為 FALSE,而且沒有設定 value_if_false,則函式會傳回空白。
有許多 Excel 摘要函式可供使用,包括 SUM
、COUNT
、AVERAGE
、MIN
、MAX
等。 唯一的差別在於在 DAX 中,您會傳入資料行參考,而在 Excel 中,您會傳入某個範圍的儲存格。
Excel 中數學、文字、日期和時間、資訊和邏輯函式,也都能夠使用。 例如,DAX 中提供的一部分 Excel 函式範例包括 ABS
、ROUND
、SQRT
、LEN
、LEFT
、RIGHT
、UPPER
、DATE
、YEAR
、MONTH
、NOW
、ISNUMBER
、TRUE
、FALSE
、AND
、OR
、NOT
,以及 IFERROR
。
並非源自 Excel 的函式
非資料模型專用,也不是源自 Excel 的兩個實用 DAX 函式為 DISTINCTCOUNT
和 DIVIDE
。
DISTINCTCOUNT 函式
您可以使用 DISTINCTCOUNT
DAX 函式來計算資料行中相異值的數目。 此函式在分析解決方案中特別實用。 請注意客戶人數與客戶人次不同。 後者不會計算重複的客戶,因此差異在於「有多少客戶」與「不同的客戶有多少」。
DIVIDE 函式
您可以使用 DIVIDE
DAX 函式來完成除法運算。 您必須傳入分子和分母運算式。 您可以選擇是否要傳入代表替代結果的值。
DIVIDE
函式的語法如下:
DIVIDE(<numerator>, <denominator>[, <alternate_result>])
DIVIDE
函式會自動處理除數為零的案例。 若替代結果沒有傳入,而且分母為零或是空白,則函式傳回空白。 若傳入替代的結果,則會傳回此值,而非空白。
因為此函式會儲存您的運算式,而不需要先測試分母值,所以用起來很方便。 相較於 IF
函式,此函式更適合用來測試分母值。 因為檢查除數為零的代價很高,所以效能提昇十分顯著。 此外,使用 DIVIDE
函式會產生更簡潔扼要的運算式。
提示
若分母運算式是可能傳回零或空白的運算式,則我們建議使用 DIVIDE
函式。 若分母是常數,我們建議使用除法運算子 (/),本課程模組隨後會進行說明。 在此情況下,除法保證會成功,而且因為它可避免無謂的的測試,所以運算式的執行效率會更好。