使用 DAX 函数
DAX 函数库包含数百个函数,每个函数都旨在实现特定目标。
由于 DAX 源自 Microsoft Excel 2010 的 Power Pivot 加载项,因此,还可以在 Excel 中找到 80 个以上的函数。 这是 Microsoft 有意设计的一种策略,目的是确保 Excel 用户可以使用 DAX 快速提高工作效率。
但是,许多函数在 Excel 中找不到,因为它们是数据建模特有的函数:
- 关系导航函数
- 筛选上下文修改函数
- 迭代器函数
- 时间智能函数
- 路径函数
提示
若要搜索与 DAX 函数相关的文档,请在 Web 搜索中输入关键字 DAX,后跟函数名称。
有关详细信息,请参阅 DAX 函数参考。
源自 Excel 的函数
以下各节介绍你可能已熟悉(因为它们存在于 Excel 中)的几个有用函数。
IF
DAX 函数测试是否满足作为第一个参数提供的条件。 如果该条件为 TRUE,它会返回一个值;如果该条件为 FALSE,则返回另一个值。 函数的语法如下:
IF(<logical_test>, <value_if_true>[, <value_if_false>])
提示
如果文档显示函数参数已括在方括号内,则该参数是可选的。
如果 logical_test 的计算结果为 FALSE,且未提供 value_if_false,函数将返回 BLANK。
可以使用许多 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
函数会自动处理除以零的情况。 如果未传入替代结果,并且分母为零或 BLANK,则函数将返回 BLANK。 当传入替代结果时,将返回该结果而不是 BLANK。
这个函数很方便,因为它使表达式不再需要先测试分母值。 与 IF
函数相比,此函数还针对测试分母值进行了更佳的优化。 性能得以显著提升,因为检查除以零的情况会消耗大量资源。 另外,使用 DIVIDE
函数可以使表达式更加简洁、精炼。
提示
如果分母是可能返回零或 BLANK 的表达式,这种情况下建议使用 DIVIDE
函数。 如果分母是一个常数值,我们建议使用除法运算符 (/),本模块后面的部分对此进行了介绍。 在这种情况下,可保证除法成功,并且表达式将表现得更好,因为它将避免不必要的测试。