DAX 函数 – 快速指南
DAX 函数 – 快速指南
DAX 函数 – 简介
DAX代表d ATA一nalysisé X pressions。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 中但不在 Excel 中的日期时间数据类型。
-
Excel 没有返回表的函数,但有些函数可以处理数组。许多 DAX 函数可以轻松引用完整的表和列来执行计算并返回一个表或一列值。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 日期和时间函数类似于 Excel 日期和时间函数。但是,DAX 日期和时间函数基于 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 标准参数名称 –
Sr.No. | 参数名称和说明 |
---|---|
1 |
expression 任何返回单个标量值的 DAX 表达式,其中表达式将被计算多次(对于每一行/上下文)。 |
2 |
value 任何返回单个标量值的 DAX 表达式,其中该表达式在所有其他操作之前只计算一次。 |
3 |
table 任何返回数据表的 DAX 表达式。 |
4 |
tableName 使用标准 DAX 语法的现有表的名称。它不能是一个表达式。 |
5 |
columnName 使用标准 DAX 语法的现有列的名称,通常是完全限定的。它不能是一个表达式。 |
6 |
name 将用于提供新对象名称的字符串常量。 |
7 |
order 用于确定排序顺序的枚举。 |
8 |
ties 用于确定绑定值处理的枚举。 |
9 |
type 用于确定 PathItem 和 PathItemReverse 的数据类型的枚举。 |
前缀参数名称或仅使用前缀
您可以使用前缀限定参数名称 –
-
前缀应该描述如何使用参数。
-
前缀应该避免对参数的歧义读取。
例如,
-
Result_ColumnName – 指用于在 DAX LOOKUPVALUE () 函数中获取结果值的现有列。
-
Search_ColumnName – 指用于在 DAX LOOKUPVALUE () 函数中搜索值的现有列。
如果前缀足以描述参数,您可以省略参数名称并仅使用前缀。省略参数名称并仅使用前缀有时有助于避免阅读过程中的混乱。
例如,考虑DATE (Year_value, Month_value, Day_value)。您可以省略参数名称 – 值,即重复三次并将其写为 DATE(年、月、日)。正如所见,通过仅使用前缀,该函数更具可读性。但是,有时为了清楚起见,必须存在参数名称和前缀。
例如,考虑Year_columnName。参数名称为 ColumnName,前缀为 Year。两者都需要让用户了解该参数需要引用现有的年份列。
DAX 函数 – 描述结构
如果必须在 DAX 公式中使用 DAX 函数,则需要详细了解该函数。您应该知道函数的语法、参数类型、函数返回的内容等。
为了让您了解如何阅读和解释 DAX 函数,本教程中使用了统一的函数描述结构。
-
不同类型的 DAX 函数按 DAX 函数的类型名称分组为章节。
-
这些章节中的每一章都简要描述了相应类型的 DAX 函数的效用。
-
简要说明之后将是与该章节对应的 DAX 函数列表(DAX 函数的类型/类别)。
-
每个 DAX 函数名称都超链接到具有以下 DAX 函数描述结构的 DAX 函数详细信息 –
- 描述
- 句法
- 参数
- 返回值
- 评论
- 例子
以下部分解释了每个 DAX 函数说明中出现的每个标题。
描述
在描述部分,您将了解 DAX 函数的含义以及可以使用的位置。
如果在 Excel 2016 中引入了 DAX 函数,这里也会提到。(其余 DAX 函数存在于 Excel 2013 中。)
句法
在语法部分,您将了解确切的函数名称和相应的参数。
-
DAX 函数名称以大写字母给出。
-
DAX 函数名称后跟左括号。
-
每个参数都遵循标准 DAX 参数命名约定,并用尖括号括起来。
-
如果参数是可选的,则将其进一步括在方括号中。
-
参数用逗号分隔。
-
省略号 … 用于显示可选的参数重复次数。
-
函数语法以右括号结束。
例子
参数
在参数部分,特定 DAX 函数的每个参数都列在一个表格中,并附有说明。比如上面例子DAX函数SELECTCOLUMNS的参数如下表所示。
Sr.No. | 参数及说明 |
---|---|
1 |
Table 表或返回表的 DAX 表达式。 |
2 |
Name 列的名称,用双引号括起来。 |
3 |
scalar_expression 返回标量值(如列引用、整数或字符串值)的 DAX 表达式。 |
返回值
在返回值部分,您将了解 DAX 函数将返回什么值及其数据类型。
评论
在备注部分,您将了解有关 DAX 函数用法的任何额外信息。您还将了解潜在的错误和原因。
例子
本节给出了 DAX 函数的使用示例。
注意– 当您使用参数的数据值编写 DAX 函数时,您将遵循以下命名约定 –
-
表名称在它出现在数据模型中时被指定。例如销售。
-
列名在数据模型中出现时指定,并用方括号括起来。
例如,[销售额]
-
建议对列使用完全限定名称,即列名以包含它的表名作为前缀。
例如,销售额[销售额]
-
如果表名包含空格,则应将其括在单引号中。
例如,’East Sales'[销售额]
-
-
DAX 函数可以返回值的列或表,在这种情况下,它需要用作另一个需要列或表的 DAX 函数的参数。
DAX 函数 – 聚合
DAX 聚合函数聚合表行上的任何表达式,并且在计算中很有用。
以下是 DAX 聚合函数 –
- DAX ADDCOLUMNS 函数
- DAX 平均函数
- DAX AVERAGEA 函数
- DAX AVERAGEX 函数
- DAX 计数函数
- DAX COUNTA 函数
- DAX COUNTAX 函数
- DAX COUNTBLANK 函数
- DAX COUNTROWS 函数
- DAX COUNTX 函数
- DAX 交叉连接函数
- DAX DISTINCTCOUNT 函数
- DAX 生成函数
- DAX GENERATEALL 函数
- DAX MAX 函数
- DAX MAXA 函数
- DAX MAXX 函数
- DAX MIN 函数
- DAX MINA 函数
- DAX MINX 函数
- DAX 产品函数
- DAX PRODUCTX 函数
- DAX 行函数
- DAX SELECTCOLUMNS 函数
- DAX SUM 函数
- DAX 汇总功能
- 带选项的 DAX SUMMARIZE 函数
- DAX SUMX 函数
- DAX TOPN 函数
DAX 函数 – 过滤器
您可以使用 DAX 过滤器函数返回特定数据类型、在相关表中查找值并按相关值进行过滤。查找函数通过使用表和它们之间的关系来工作。过滤器函数使您能够操作数据上下文以创建动态计算。
以下是 DAX 过滤器功能
- DAX ADDMISSINGITEMS 函数
- DAX ALL 功能
- DAX ALLEXCEPT 函数
- DAX ALLNOBLANKROW 函数
- DAX ALLSELECTED 函数
- DAX 计算函数
- DAX 计算表函数
- DAX 交叉筛选功能
- DAX DISTINCT 函数
- DAX 早期函数
- DAX EARLIEST 函数
- DAX 过滤器功能
- DAX 过滤器功能
- DAX HASONEFILTER 功能
- DAX HASONEVALUE 函数
- DAX ISCROSSFILTERED 函数
- DAX ISFILTERED 函数
- DAX KEEPFILTERS 功能
- DAX 相关函数
- DAX 相关函数
- DAX 用户关系函数
- DAX 值函数
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 最新日期函数
- 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 日历功能
- DAX 日历自动功能
- DAX 日期函数
- DAX DATEDIFF 函数
- DAX 日期值函数
- DAX DAY 功能
- DAX EDATE 函数
- DAX EOMONTH 函数
- DAX 小时功能
- DAX 分钟功能
- DAX MONTH 函数
- DAX NOW 功能
- DAX SECOND 函数
- DAX 时间函数
- DAX TIMEVALUE 函数
- DAX TODAY 函数
- DAX WEEKDAY 函数
- DAX WEEKNUM 函数
- DAX 年函数
- DAX YEARFRAC 函数
DAX 函数 – 信息
DAX 信息函数查看作为参数提供的值或列,并告诉您该值是否与预期类型匹配。
以下是 DAX 信息功能 –
- DAX CONTAINS 函数
- DAX 自定义数据函数
- DAX ISBLANK 函数
- DAX ISERROR 函数
- DAX ISEMPTY 函数
- DAX ISEVEN 函数
- DAX ISLOGICAL 函数
- DAX ISNONTEXT 函数
- DAX ISNUMBER 函数
- DAX ISODD 函数
- DAX ISONORAFTER 函数
- DAX ISTEXT 函数
- DAX LOOKUPVALUE 函数
- DAX 用户名函数
DAX 函数 – 逻辑
DAX 逻辑函数根据对相关参数执行的逻辑运算返回逻辑值 (TRUE/FALSE)。
以下是 DAX 逻辑函数 –
数学和三角函数
DAX 数学和三角函数与 Excel 数学和三角函数非常相似。
以下是 DAX 数学和三角函数 –
- DAX ABS 功能
- DAX ACOS 函数
- DAX ACOSH 函数
- DAX ASIN 函数
- DAX ASINH 函数
- DAX ATAN 函数
- DAX ATANH 函数
- DAX 天花板功能
- DAX 组合函数
- DAX 组合功能
- DAX COS 函数
- DAX COSH 函数
- DAX 货币函数
- DAX 度函数
- DAX DIVIDE 功能
- DAX 偶函数
- DAX EXP 函数
- DAX FACT 函数
- DAX 楼层功能
- DAX GCD 函数
- DAX INT 函数
- DAX ISO.CEILING 函数
- DAX LCM 功能
- DAX LN 功能
- DAX 日志功能
- DAX LOG10 函数
- DAX MROUND 功能
- DAX MOD 功能
- DAX 奇数函数
- DAX 置换函数
- DAX PI 函数
- DAX POWER 功能
- DAX QUOTIENT 函数
- DAX 弧度函数
- DAX RAND 函数
- DAX RANDBETWEEN 函数
- DAX ROUND 函数
- DAX ROUNDDOWN 函数
- DAX ROUNDUP 函数
- DAX SIGN 功能
- DAX 正弦函数
- 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 中值函数
- DAX MEDIANX 函数
- DAX PERCENTILE.EXC 函数
- DAX PERCENTILE.INC 函数
- DAX PERCENTILEX.EXC 函数
- DAX PERCENTILEX.INC 函数
- DAX POISSON.DIST 函数
- DAX RANK.EQ 函数
- DAX RANKX 函数
- DAX 采样函数
- 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 空白函数
- DAX 代码功能
- DAX 连接函数
- DAX CONCATATEX 函数
- DAX 精确函数
- DAX 查找功能
- DAX 固定函数
- DAX 格式函数
- DAX 左函数
- DAX LEN 功能
- DAX 降低功能
- DAX 中间函数
- DAX 替换功能
- DAX 报告功能
- DAX 右函数
- DAX 搜索功能
- DAX 替代函数
- DAX 修剪功能
- DAX UPPER 函数
- DAX 值函数
DAX 函数 – 其他
这些 DAX 函数执行独特的操作,大多数其他 DAX 函数所属的任何类别都无法定义这些操作。
以下是 DAX 其他功能 –