使用 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 摘要函式可供使用,包括 SUMCOUNTAVERAGEMINMAX 等。 唯一的差別在於在 DAX 中,您會傳入資料行參考,而在 Excel 中,您會傳入某個範圍的儲存格。

Excel 中數學、文字、日期和時間、資訊和邏輯函式,也都能夠使用。 例如,DAX 中提供的一部分 Excel 函式範例包括 ABSROUNDSQRTLENLEFTRIGHTUPPERDATEYEARMONTHNOWISNUMBERTRUEFALSEANDORNOT,以及 IFERROR

並非源自 Excel 的函式

非資料模型專用,也不是源自 Excel 的兩個實用 DAX 函式為 DISTINCTCOUNTDIVIDE

DISTINCTCOUNT 函式

您可以使用 DISTINCTCOUNT DAX 函式來計算資料行中相異值的數目。 此函式在分析解決方案中特別實用。 請注意客戶人數與客戶人次不同。 後者不會計算重複的客戶,因此差異在於「有多少客戶」與「不同的客戶有多少」。

DIVIDE 函式

您可以使用 DIVIDE DAX 函式來完成除法運算。 您必須傳入分子和分母運算式。 您可以選擇是否要傳入代表替代結果的值。 DIVIDE 函式的語法如下:

DIVIDE(<numerator>, <denominator>[, <alternate_result>])

DIVIDE 函式會自動處理除數為零的案例。 若替代結果沒有傳入,而且分母為零或是空白,則函式傳回空白。 若傳入替代的結果,則會傳回此值,而非空白。

因為此函式會儲存您的運算式,而不需要先測試分母值,所以用起來很方便。 相較於 IF 函式,此函式更適合用來測試分母值。 因為檢查除數為零的代價很高,所以效能提昇十分顯著。 此外,使用 DIVIDE 函式會產生更簡潔扼要的運算式。

提示

若分母運算式是可能傳回零或空白的運算式,則我們建議使用 DIVIDE 函式。 若分母是常數,我們建議使用除法運算子 (/),本課程模組隨後會進行說明。 在此情況下,除法保證會成功,而且因為它可避免無謂的的測試,所以運算式的執行效率會更好。