DAX 函式速查指南



DAX 函式 - 簡介

DAX 代表**數**據**分**析**表**達式 (**D**ata **A**nalysis **E**xpressions)。DAX 是一種公式語言,它包含一系列函式、運算子和常量,可用於公式或表示式中計算並返回一個或多個值。DAX 是與 Microsoft Excel Power Pivot 資料模型和 Microsoft Power BI 關聯的公式語言。

DAX 不是一種程式語言,而是一種公式語言,它允許使用者在計算列和計算欄位(也稱為度量值)中定義自定義計算。DAX 幫助您根據資料模型中現有的資料建立新的資訊。DAX 公式使您能夠執行資料建模、資料分析,並將結果用於報告和決策。

要深入瞭解 DAX,請參閱本教程庫中的教程 – DAX。

什麼是 DAX 函式?

DAX 函式是 DAX 語言中提供的內建函式,使您能夠對資料模型中表中的資料執行各種操作。

DAX 函式使您能夠對資料模型執行常用資料計算。一些 DAX 函式的名稱和功能與 Excel 函式相同,但已修改為使用 DAX 資料型別並與表和列一起使用,如下節所述。DAX 具有其他旨在處理關係資料並執行動態聚合的函式。

DAX 函式在使用 DAX 進行資料建模和報告中起著重要作用。

Excel 函式與 DAX 函式

Excel 函式和 DAX 函式之間存在一些相似之處和差異。以下是 Excel 函式和 DAX 函式的異同:

Excel 函式和 DAX 函式之間的相似之處

  • 某些 DAX 函式具有與 Excel 函式相同的名稱和大致相同的行為。

  • DAX 具有與 Excel 中的陣列和向量查詢函式類似的查詢函式。

Excel 函式和 DAX 函式之間的差異

  • DAX 函式已被修改為採用不同型別的輸入,並且某些 DAX 函式可能會返回不同的資料型別。因此,即使它們具有相同的名稱,也需要分別瞭解這些函式的用法。

  • 如果沒有必要的修改,您不能在 Excel 公式中使用 DAX 函式,也不能在 DAX 公式中使用 Excel 函式。

  • Excel 函式以單元格引用或單元格範圍作為引用。DAX 函式從不以單元格引用或單元格範圍作為引用,而是以列或表作為引用。

  • Excel 的日期和時間函式返回一個表示日期的序列號的整數。DAX 日期和時間函式返回 DAX 中存在的 datetime 資料型別,而 Excel 中則沒有。

  • Excel 沒有返回表的函式,但某些函式可以使用陣列。許多 DAX 函式可以輕鬆引用完整的表和列來執行計算並返回表或值列。DAX 的此功能增強了 Power Pivot、Power View 和 Power BI 的功能,這些工具都使用 DAX。

  • DAX 查詢函式要求在各個表之間建立關係。

DAX 引數命名約定

DAX 具有標準引數名稱,以方便使用和理解 DAX 函式。此外,您可以對引數名稱使用某些字首。如果字首足夠清晰,您可以將字首本身用作引數名稱。

您需要了解 DAX 引數命名約定,以便理解 DAX 函式的語法並正確使用所需引數的值。

有關詳細資訊,請參閱章節 - DAX 引數命名約定

DAX 函式的型別

DAX 支援以下型別的函式。

  • DAX 表值函式
    • DAX 篩選函式
    • DAX 聚合函式
    • DAX 時間智慧函式
  • DAX 日期和時間函式
  • DAX 資訊函式
  • DAX 邏輯函式
  • DAX 數學和三角函式
  • DAX 其他函式
  • DAX 父子關係函式
  • DAX 統計函式
  • DAX 文字函式
  • DAX 描述結構函式

DAX 表值函式

許多 DAX 函式以表作為輸入或輸出表,或者同時兩者兼有。這些 DAX 函式稱為 DAX 表值函式。因為表可以只有一列,所以 DAX 表值函式也以單列作為輸入。您有以下型別的 DAX 表值函式:

  • DAX 聚合函式
  • DAX 篩選函式
  • DAX 時間智慧函式

DAX 聚合函式

DAX 聚合函式對錶的行的表示式進行聚合,在計算中非常有用。

有關詳細資訊,請參閱章節 - DAX 聚合函式

DAX 篩選函式

DAX 篩選函式返回與當前行相關的列、表或值。您可以使用 DAX 篩選函式返回特定資料型別、查詢相關表中的值以及按相關值篩選。DAX 查詢函式透過使用表及其之間的關係來工作。DAX 篩選函式使您能夠操作資料上下文以建立動態計算。

有關詳細資訊,請參閱章節 - DAX 篩選函式

DAX 時間智慧函式

DAX 時間智慧函式返回日期表或使用日期表來計算聚合。這些 DAX 函式幫助您建立支援商業智慧分析需求的計算,使您能夠使用時間段(包括天、月、季度和年)來操作資料。

有關詳細資訊,請參閱章節 - DAX 時間智慧函式

DAX 日期和時間函式

DAX 日期和時間函式類似於 Excel 日期和時間函式。但是,DAX 日期和時間函式基於 DAX 的 datetime 資料型別。

有關詳細資訊,請參閱章節 - DAX 日期和時間函式

DAX 資訊函式

DAX 資訊函式檢視作為引數提供的單元格或行,並告知您值是否與預期型別匹配。

有關詳細資訊,請參閱章節 - DAX 資訊函式

DAX 邏輯函式

DAX 邏輯函式返回有關表示式中值的的資訊。例如,DAX TRUE 函式可讓您知道您正在計算的表示式是否返回 TRUE 值。

有關詳細資訊,請參閱章節 - DAX 邏輯函式

DAX 數學和三角函式

DAX 數學和三角函式與 Excel 數學和三角函式非常相似。

有關詳細資訊,請參閱章節 - DAX 數學和三角函式

DAX 父子關係函式

DAX 父子關係函式可用於管理資料模型中以父子層次結構呈現的資料。

有關詳細資訊,請參閱章節 - DAX 父子關係函式

DAX 統計函式

DAX 統計函式與 Excel 統計函式非常相似。

有關詳細資訊,請參閱章節 - DAX 統計函式

DAX 文字函式

DAX 文字函式處理表和列。使用 DAX 文字函式,您可以返回字串的一部分,在字串中搜索文字或連線字串值。您還可以控制日期、時間和數字的格式。

有關詳細資訊,請參閱章節 - DAX 文字函式

DAX 其他函式

這些 DAX 函式執行獨特的操作,這些操作無法由大多數其他函式所屬的任何類別定義。

有關詳細資訊,請參閱章節 - DAX 其他函式

DAX 函式描述結構

如果您必須在 DAX 公式中使用 DAX 函式,則需要詳細瞭解該函式。您應該瞭解函式的語法、引數型別、函式返回的內容等。

在本教程中,所有 DAX 函式都使用通用的函式描述結構,以便您可以有效地閱讀和解釋 DAX 函式。

有關詳細資訊,請參閱章節 - DAX 函式描述結構

DAX 引數命名約定

DAX 具有標準引數名稱,以方便使用和理解 DAX 函式。此外,您可以對引數名稱使用某些字首。如果字首足夠清晰,您可以將字首本身用作引數名稱。

要理解 DAX 函式的語法並適當地使用相關 DAX 函式引數的資料值,您需要了解 DAX 引數命名約定。

引數名稱

以下是 DAX 標準引數名稱:

序號 引數名稱和描述
1

表示式

任何返回單個標量值的 DAX 表示式,其中表達式需要多次計算(針對每一行/上下文)。

2

任何返回單個標量值的 DAX 表示式,其中表達式需要在所有其他操作之前只計算一次。

3

任何返回資料表的 DAX 表示式。

4

表名

使用標準 DAX 語法的現有表名。它不能是表示式。

5

列名

使用標準 DAX 語法的現有列名,通常是完全限定的。它不能是表示式。

6

名稱

將用於提供新物件名稱的字串常量。

7

順序

用於確定排序順序的列舉。

8

並列值

用於確定如何處理並列值的列舉。

9

型別

用於確定 PathItem 和 PathItemReverse 資料型別的列舉。

引數名稱字首或僅使用字首

您可以使用字首限定引數名稱:

  • 字首應描述引數的使用方式。

  • 字首應避免參數的歧義解讀。

例如:

  • **Result_ColumnName** - 指的是用於在 DAX LOOKUPVALUE() 函式中獲取結果值的現有列。

  • **Search_ColumnName** - 指的是用於在 DAX LOOKUPVALUE() 函式中搜索值的現有列。

如果字首足夠清晰地描述引數,您可以省略引數名稱,只使用字首。省略引數名稱並只使用字首有時可以幫助避免閱讀過程中的混亂。

例如,考慮一下DATE (Year_value, Month_value, Day_value)。您可以省略引數名-值,因為它們重複了三次,可以寫成 DATE (Year, Month, Day)。如您所見,只使用字首可以使函式更易讀。但是,有時為了清晰起見,必須同時使用引數名和字首。

例如,考慮一下Year_columnName。引數名為ColumnName,字首為Year。兩者都需要讓使用者理解該引數需要引用一個現有的年份列。

DAX 函式 - 描述結構

如果您必須在 DAX 公式中使用 DAX 函式,則需要詳細瞭解該函式。您應該瞭解函式的語法、引數型別、函式返回的內容等。

為了讓您瞭解如何閱讀和解釋DAX函式,本教程使用統一的函式描述結構。

  • 不同型別的DAX函式按DAX函式的型別名稱分組為章節。

  • 每一章都簡要描述了相應型別DAX函式的實用性。

  • 簡要描述之後是對應於該章節的DAX函式列表(DAX函式的型別/類別)。

  • 每個DAX函式名稱都連結到DAX函式詳細資訊,這些詳細資訊具有以下DAX函式描述結構:

    • 描述
    • 語法
    • 引數
    • 返回值
    • 備註
    • 示例

以下部分解釋了每個DAX函式解釋中出現的每個標題。

描述

在“描述”部分,您將瞭解DAX函式的功能及其用途。

如果DAX函式是在Excel 2016中引入的,則此處也會提及。(其餘DAX函式存在於Excel 2013中。)

語法

在“語法”部分,您將瞭解確切的函式名稱和相應引數。

  • DAX函式名稱以大寫字母表示。

  • DAX函式名稱後跟左括號。

  • 每個引數都遵循標準的DAX引數命名約定,並用尖括號括起來。

  • 如果引數是可選的,則將其進一步用方括號括起來。

  • 引數之間用逗號分隔。

  • 省略號…用於顯示引數的可選重複次數。

  • 函式語法以右括號結尾。

示例

Syntax

引數

在“引數”部分,特定DAX函式的每個引數都與其描述一起列在一個表中。例如,上面示例DAX函式SELECTCOLUMNS的引數列在以下表格中。

序號 引數 & 描述
1

表格

表格或返回表格的DAX表示式。

2

名稱

賦予列的名稱,用雙引號括起來。

3

標量表達式

返回標量值的DAX表示式,例如列引用、整數或字串值。

返回值

在“返回值”部分,您將瞭解DAX函式將返回的值及其資料型別。

備註

在“備註”部分,您將瞭解有關DAX函式用法所需瞭解的任何額外資訊。您還將瞭解潛在的錯誤及其原因。

示例

本節給出了DAX函式用法的示例。

注意 - 當您使用引數的資料值編寫DAX函式時,請遵循以下命名約定:

  • 表名按其在資料模型中顯示的方式指定。例如,Sales。

  • 列名按其在資料模型中顯示的方式指定,並用方括號括起來。

    例如,[Sales Amount]

    • 建議使用列的完全限定名稱,即列名字首包含它的表名。

      例如,Sales[Sales Amount]

    • 如果表名包含空格,則應將其用單引號括起來。

      例如,‘East Sales’[Sales Amount]

  • DAX函式可以返回列或表的值,在這種情況下,它需要用作另一個需要列或表的DAX函式的引數。

DAX 函式 - 聚合

DAX 聚合函式對錶的行的表示式進行聚合,在計算中非常有用。

以下是DAX聚合函式:

DAX 函式 - 篩選

您可以使用DAX篩選器函式返回特定資料型別,查詢相關表中的值以及按相關值篩選。查詢函式透過使用表以及它們之間的關係來工作。篩選器函式使您可以操作資料上下文以建立動態計算。

以下是DAX篩選器函式:

DAX 函式 - 時間智慧

DAX時間智慧函式可幫助您建立支援商業智慧分析需求的計算,使您可以使用時間段(包括天、月、季度和年)來操作資料。

以下是DAX時間智慧函式:

DAX 函式 - 日期和時間

DAX日期和時間函式類似於Excel日期和時間函式。但是,DAX日期和時間函式基於DAX日期時間資料型別。

以下是DAX日期和時間函式:

DAX 函式 - 資訊

DAX資訊函式檢視作為引數提供的數值或列,並告訴您該值是否與預期型別匹配。

以下是DAX資訊函式:

DAX 函式 - 邏輯

DAX邏輯函式根據對相關引數執行的邏輯運算返回邏輯值(TRUE/FALSE)。

以下是DAX邏輯函式:

數學和三角函式

DAX 數學和三角函式與 Excel 數學和三角函式非常相似。

以下是DAX數學和三角函式:

DAX 函式 - 父子關係

DAX 父子關係函式可用於管理資料模型中以父子層次結構呈現的資料。

以下是 DAX 父子關係函式:

DAX 函式 - 統計

DAX 統計函式與 Excel 統計函式非常相似。

以下是 DAX 統計函式:

DAX 函式 - 文字

DAX 文字函式用於處理表格和列。使用 DAX 文字函式,您可以返回字串的一部分,在字串中搜索文字或連線字串值。您還可以控制日期、時間和數字的格式。

以下是 DAX 文字函式:

DAX 函式 - 其他

這些 DAX 函式執行獨特的操作,無法用大多數其他 DAX 函式所屬的任何類別來定義。

以下是 DAX 其他函式:

廣告
© . All rights reserved.