- DAX 函式教程
- DAX 函式 - 首頁
- DAX 函式 - 簡介
- DAX 引數命名約定
- 描述結構
- DAX 函式 - 聚合
- DAX 函式 - 篩選
- DAX 函式 - 時間智慧
- DAX 函式 - 日期和時間
- DAX 函式 - 資訊
- DAX 函式 - 邏輯
- 數學與三角函式
- DAX 函式 - 父子關係
- DAX 函式 - 統計
- DAX 函式 - 文字
- DAX 函式 - 其他
- DAX 函式實用資源
- DAX 函式速查指南
- DAX 函式 - 實用資源
- DAX 函式 - 討論
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引數命名約定,並用尖括號括起來。
如果引數是可選的,則將其進一步用方括號括起來。
引數之間用逗號分隔。
省略號…用於顯示引數的可選重複次數。
函式語法以右括號結尾。
示例
引數
在“引數”部分,特定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 ADDCOLUMNS 函式
- DAX AVERAGE 函式
- DAX AVERAGEA 函式
- DAX AVERAGEX 函式
- DAX COUNT 函式
- DAX COUNTA 函式
- DAX COUNTAX 函式
- DAX COUNTBLANK 函式
- DAX COUNTROWS 函式
- DAX COUNTX 函式
- DAX CROSSJOIN 函式
- DAX DISTINCTCOUNT 函式
- DAX GENERATE 函式
- DAX GENERATEALL 函式
- DAX MAX 函式
- DAX MAXA 函式
- DAX MAXX 函式
- DAX MIN 函式
- DAX MINA 函式
- DAX MINX 函式
- DAX PRODUCT 函式
- DAX PRODUCTX 函式
- DAX ROW 函式
- DAX SELECTCOLUMNS 函式
- DAX SUM 函式
- DAX SUMMARIZE 函式
- 帶有選項的DAX SUMMARIZE 函式
- DAX SUMX 函式
- DAX TOPN 函式
DAX 函式 - 篩選
您可以使用DAX篩選器函式返回特定資料型別,查詢相關表中的值以及按相關值篩選。查詢函式透過使用表以及它們之間的關係來工作。篩選器函式使您可以操作資料上下文以建立動態計算。
以下是DAX篩選器函式:
- DAX ADDMISSINGITEMS 函式
- DAX ALL 函式
- DAX ALLEXCEPT 函式
- DAX ALLNOBLANKROW 函式
- DAX ALLSELECTED 函式
- DAX CALCULATE 函式
- DAX CALCULATETABLE 函式
- DAX CROSSFILTER 函式
- DAX DISTINCT 函式
- DAX EARLIER 函式
- DAX EARLIEST 函式
- DAX FILTER 函式
- DAX FILTERS 函式
- DAX HASONEFILTER 函式
- DAX HASONEVALUE 函式
- DAX ISCROSSFILTERED 函式
- DAX ISFILTERED 函式
- DAX KEEPFILTERS 函式
- DAX RELATED 函式
- DAX RELATEDTABLE 函式
- DAX USERELATIONSHIP 函式
- DAX VALUES 函式
DAX 函式 - 時間智慧
DAX時間智慧函式可幫助您建立支援商業智慧分析需求的計算,使您可以使用時間段(包括天、月、季度和年)來操作資料。
以下是DAX時間智慧函式:
- DAX CLOSINGBALANCEMONTH 函式
- DAX CLOSINGBALANCEQUARTER 函式
- DAX CLOSINGBALANCEYEAR 函式
- DAX DATEADD 函式
- DAX DATESBETWEEN 函式
- DAX DATESINPERIOD 函式
- DAX DATESMTD 函式
- DAX DATESQTD 函式
- DAX DATESYTD 函式
- DAX ENDOFMONTH 函式
- DAX ENDOFQUARTER 函式
- DAX ENDOFYEAR 函式
- DAX FIRSTDATE 函式
- DAX FIRSTNONBLANK 函式
- DAX LASTDATE 函式
- DAX LASTNONBLANK 函式
- DAX NEXTDAY 函式
- DAX NEXTMONTH 函式
- DAX NEXTQUARTER 函式
- DAX NEXTYEAR 函式
- DAX OPENINGBALANCEMONTH 函式
- DAX OPENINGBALANCEQUARTER 函式
- DAX OPENINGBALANCEYEAR 函式
- DAX PARALLELPERIOD 函式
- DAX PREVIOUSDAY 函式
- DAX PREVIOUSMONTH 函式
- DAX PREVIOUSQUARTER 函式
- DAX PREVIOUSYEAR 函式
- DAX SAMEPERIODLASTYEAR 函式
- DAX STARTOFMONTH 函式
- DAX STARTOFQUARTER 函式
- DAX STARTOFYEAR 函式
- DAX TOTALMTD 函式
- DAX TOTALQTD 函式
- DAX TOTALYTD 函式
DAX 函式 - 日期和時間
DAX日期和時間函式類似於Excel日期和時間函式。但是,DAX日期和時間函式基於DAX日期時間資料型別。
以下是DAX日期和時間函式:
- DAX CALENDAR 函式
- DAX CALENDARAUTO 函式
- DAX DATE 函式
- DAX DATEDIFF 函式
- DAX DATEVALUE 函式
- DAX DAY 函式
- DAX EDATE 函式
- DAX EOMONTH 函式
- DAX HOUR 函式
- DAX MINUTE 函式
- DAX MONTH 函式
- DAX NOW 函式
- DAX SECOND 函式
- DAX TIME 函式
- DAX TIMEVALUE 函式
- DAX TODAY 函式
- DAX WEEKDAY 函式
- DAX WEEKNUM 函式
- DAX YEAR 函式
- DAX YEARFRAC 函式
DAX 函式 - 資訊
DAX資訊函式檢視作為引數提供的數值或列,並告訴您該值是否與預期型別匹配。
以下是DAX資訊函式:
- DAX CONTAINS 函式
- DAX CUSTOMDATA 函式
- DAX ISBLANK 函式
- DAX ISERROR 函式
- DAX ISEMPTY 函式
- DAX ISEVEN 函式
- DAX ISLOGICAL 函式
- DAX ISNONTEXT 函式
- DAX ISNUMBER 函式
- DAX ISODD 函式
- DAX ISONORAFTER 函式
- DAX ISTEXT 函式
- DAX LOOKUPVALUE 函式
- DAX USERNAME 函式
DAX 函式 - 邏輯
DAX邏輯函式根據對相關引數執行的邏輯運算返回邏輯值(TRUE/FALSE)。
以下是DAX邏輯函式:
數學和三角函式
DAX 數學和三角函式與 Excel 數學和三角函式非常相似。
以下是DAX數學和三角函式:
- DAX ABS 函式
- DAX ACOS 函式
- DAX ACOSH 函式
- DAX ASIN 函式
- DAX ASINH 函式
- DAX ATAN 函式
- DAX ATANH 函式
- DAX CEILING 函式
- DAX COMBIN 函式
- DAX COMBINA 函式
- DAX COS 函式
- DAX COSH 函式
- DAX CURRENCY 函式
- DAX DEGREES 函式
- DAX DIVIDE 函式
- DAX EVEN 函式
- DAX EXP 函式
- DAX FACT 函式
- DAX FLOOR 函式
- DAX GCD 函式
- DAX INT 函式
- DAX ISO.CEILING 函式
- DAX LCM 函式
- DAX LN 函式
- DAX LOG 函式
- DAX LOG10 函式
- DAX MROUND 函式
- DAX MOD 函式
- DAX ODD 函式
- DAX PERMUT 函式
- DAX PI 函式
- DAX POWER 函式
- DAX QUOTIENT 函式
- DAX RADIANS 函式
- DAX RAND 函式
- DAX RANDBETWEEN 函式
- DAX ROUND 函式
- DAX ROUNDDOWN 函式
- DAX ROUNDUP 函式
- DAX SIGN 函式
- DAX SIN 函式
- DAX SINH 函式
- DAX SQRT 函式
- DAX SQRTPI 函式
- DAX TAN 函式
- DAX TANH 函式
- DAX TRUNC 函式
DAX 函式 - 父子關係
DAX 父子關係函式可用於管理資料模型中以父子層次結構呈現的資料。
以下是 DAX 父子關係函式:
DAX 函式 - 統計
DAX 統計函式與 Excel 統計函式非常相似。
以下是 DAX 統計函式:
- DAX BETA.DIST 函式
- DAX BETA.INV 函式
- DAX CHISQ.DIST 函式
- DAX CHISQ.DIST.RT 函式
- DAX CHISQ.INV 函式
- DAX CHISQ.INV.RT 函式
- DAX CONFIDENCE.NORM 函式
- DAX CONFIDENCE.T 函式
- DAX EXPON.DIST 函式
- DAX GEOMEAN 函式
- DAX GEOMEANX 函式
- DAX MEDIAN 函式
- DAX MEDIANX 函式
- DAX PERCENTILE.EXC 函式
- DAX PERCENTILE.INC 函式
- DAX PERCENTILEX.EXC 函式
- DAX PERCENTILEX.INC 函式
- DAX POISSON.DIST 函式
- DAX RANK.EQ 函式
- DAX RANKX 函式
- DAX SAMPLE 函式
- DAX STDEV.P 函式
- DAX STDEV.S 函式
- DAX STDEVX.P 函式
- DAX STDEVX.S 函式
- DAX VAR.P 函式
- DAX VAR.S 函式
- DAX VARX.P 函式
- DAX VARX.S 函式
- DAX XIRR 函式
- DAX XNPV 函式
DAX 函式 - 文字
DAX 文字函式用於處理表格和列。使用 DAX 文字函式,您可以返回字串的一部分,在字串中搜索文字或連線字串值。您還可以控制日期、時間和數字的格式。
以下是 DAX 文字函式:
- DAX BLANK 函式
- DAX CODE 函式
- DAX CONCATENATE 函式
- DAX CONCATENATEX 函式
- DAX EXACT 函式
- DAX FIND 函式
- DAX FIXED 函式
- DAX FORMAT 函式
- DAX LEFT 函式
- DAX LEN 函式
- DAX LOWER 函式
- DAX MID 函式
- DAX REPLACE 函式
- DAX REPT 函式
- DAX RIGHT 函式
- DAX SEARCH 函式
- DAX SUBSTITUTE 函式
- DAX TRIM 函式
- DAX UPPER 函式
- DAX VALUE 函式
DAX 函式 - 其他
這些 DAX 函式執行獨特的操作,無法用大多數其他 DAX 函式所屬的任何類別來定義。
以下是 DAX 其他函式:
- DAX EXCEPT 函式
- DAX GROUPBY 函式
- DAX INTERSECT 函式
- DAX NATURALINNERJOIN 函式
- DAX NATURALLEFTOUTERJOIN 函式
- DAX SUMMARIZECOLUMNS 函式
- DAX UNION 函式
- DAX VAR 函式