使用 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 汇总函数,其中包括 SUMCOUNTAVERAGEMINMAX 等等。 唯一不同的是,在 DAX 中,传入一个列引用,而在 Excel 中,传入一个单元格区域。

还可以使用许多 Excel 数学、文本、日期和时间、信息和逻辑函数。 例如,DAX 中提供的一小部分 Excel 函数示例包括 ABSROUNDSQRTLENLEFTRIGHTUPPERDATEYEARMONTHNOWISNUMBERTRUEFALSEANDORNOTIFERROR

非源自 Excel 的函数

DISTINCTCOUNTDIVIDE 是两个有用的 DAX 函数,既不专用于建模,也不是源自 Excel。

DISTINCTCOUNT 函数

可以使用 DISTINCTCOUNT DAX 函数来计算一列中不同值的数量。 在分析解决方案中,这个函数尤其有用。 考虑到客户的计数与非重复客户的计数是不同的。 后者不会对重复的客户进行计数,因此,区别在于“多少个客户”与“多少个不同的客户”。

DIVIDE 函数

可以使用 DIVIDE DAX 函数实现除法。 必须传入分子和分母表达式。 也可以选择传入一个代表替代结果的值。 DIVIDE 函数的语法如下:

DIVIDE(<numerator>, <denominator>[, <alternate_result>])

DIVIDE 函数会自动处理除以零的情况。 如果未传入替代结果,并且分母为零或 BLANK,则函数将返回 BLANK。 当传入替代结果时,将返回该结果而不是 BLANK。

这个函数很方便,因为它使表达式不再需要先测试分母值。 与 IF 函数相比,此函数还针对测试分母值进行了更佳的优化。 性能得以显著提升,因为检查除以零的情况会消耗大量资源。 另外,使用 DIVIDE 函数可以使表达式更加简洁、精炼。

提示

如果分母是可能返回零或 BLANK 的表达式,这种情况下建议使用 DIVIDE 函数。 如果分母是一个常数值,我们建议使用除法运算符 (/),本模块后面的部分对此进行了介绍。 在这种情况下,可保证除法成功,并且表达式将表现得更好,因为它将避免不必要的测试。