DIVIDE 函数与除法运算符 (/)

作为数据建模器,在编写 DAX 表达式以用分母分隔分子时,可以选择使用 DIVIDE 函数或除法运算符(/ - 正斜杠)。

使用 DIVIDE 函数时,必须传递分子和分母表达式。 (可选)可以传入一个值,该值表示 备用结果

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

按照设计,DIVIDE 函数可自动处理除数为零的情况。 如果未传入备用结果,分母为零或 BLANK,则函数将返回 BLANK。 如果已有替代结果传入,则函数会返回替代结果而不是 BLANK。

DIVIDE 函数非常方便,因为它使表达式无需首先检测分母的值。 该函数还更适用于测试分母值,而不是 IF 函数。 性能提升非常重要,因为检查除数是否为零会产生大量费用。 进一步使用 DIVIDE 会导致更简洁而优雅的表达式。

以下度量值表达式生成安全的除法运算,但它涉及使用四个 DAX 函数。

Profit Margin =
IF(
    OR(
        ISBLANK([Sales]),
        [Sales] == 0
    ),
    BLANK(),
    [Profit] / [Sales]
)

此度量值表达式可实现相同的结果,但更高效、更优雅。

Profit Margin =
DIVIDE([Profit], [Sales])

建议

每当分母是 可以返回零或 BLANK的表达式时,建议使用 DIVIDE 函数。

如果分母是常量值,建议使用除法运算符。 在这种情况下,除法运算一定会成功,而且由于避免了不必要的检测,表达式性能更好。

仔细考虑 DIVIDE 函数是否应返回备用值。 对于度量值,返回 BLANK 时通常设计更佳。 返回 BLANK 更好,因为在汇总为 BLANK 时报表视觉对象默认会取消分组。 它允许视觉焦点集中于有数据的组。 必要时,在 Power BI 中,可启用显示无数据的项选项,将视觉对象配置为显示筛选器上下文中所有的组(即返回值或 BLANK 的组)。