使用 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 函式。 若分母是常數,我們建議使用除法運算子 (/),本課程模組隨後會進行說明。 在此情況下,除法保證會成功,而且因為它可避免無謂的的測試,所以運算式的執行效率會更好。