使用 DAX 函数
DAX 函数库包含数百个函数,每个函数都旨在实现特定目标。
由于 DAX 源自 Microsoft Excel 2010 的 Power Pivot 加载项,因此,还可以在 Excel 中找到超过 80 个函数。 这是 Microsoft 有意设计的一种策略,目的是确保 Excel 用户可以使用 DAX 快速提高工作效率。
但是,许多函数存在于 Power BI 中,而在 Excel 中找不到,因为它们特定于数据建模:
- 关系导航函数
- 筛选器上下文修改函数
- 迭代程序函数
- 时间智能函数
- 路径函数
提示
若要搜索与 DAX 函数相关的文档,请在 Web 搜索中,输入关键字 DAX,后跟函数名称。
有关详细信息,请参阅 DAX 函数引用。
源自 Excel 的函数
以下部分介绍您可能已熟悉(因为它们存在于 Excel 中)的几个有用函数。
IF 函数测试是否满足作为第一个参数提供的条件。 如果该条件为 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 的函数
DISTINCTCOUNT 和 DIVIDE 是两个有用的 DAX 函数,既不特定于建模,也不源自 Excel。
DISTINCTCOUNT 函数
您可以使用 DISTINCTCOUNT DAX 函数对某一列中不同值的数量进行计数。 在分析解决方案中,此函数尤其有用。 考虑到客户的计数与不同 客户的计数是不同的。 后者不会对重复的客户进行计数,因此,区别在于“多少个客户”与“多少个不同 的客户”。
DIVIDE 函数
您可以使用 DIVIDE DAX 函数实现除法。 必须传入分子和分母表达式。 也可以选择传入一个表示替代结果 的值。
DIVIDE 函数的语法如下:
DIVIDE(<numerator>, <denominator>[, <alternate_result>])
DIVIDE 函数会自动处理除以零的情况。 如果未传入替代结果,并且分母为零或空值,则函数将返回空值。 当传入替代结果时,将返回该结果,而不是空值。
此函数很方便,因为它使表达式不再需要先测试分母值。 与 IF 函数相比,此函数还提高了性能以测试分母值。 性能得以显著提升,因为检查除以零的情况成本高昂。 另外,使用 DIVIDE 函数可以使表达式更加简洁、精炼。
提示
如果分母是可能返回零或空值的表达式,我们建议您使用 DIVIDE 函数。 如果分母是一个常数值,我们建议您使用除法运算符 (/),本模块的后面部分将介绍此内容。 在这种情况下,可保证除法成功,并且表达式将表现得更好,因为它将避免不必要的测试。