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

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

非源自 Excel 的函数

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

DISTINCTCOUNT 函数

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

DIVIDE 函数

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

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

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

此函数很方便,因为它使表达式不再需要先测试分母值。 与 IF 函数相比,此函数还提高了性能以测试分母值。 性能得以显著提升,因为检查除以零的情况成本高昂。 另外,使用 DIVIDE 函数可以使表达式更加简洁、精炼。

提示

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