Table of Contents

代码操作 DI014(改进)用 DIVIDE 替换 IFERROR

描述

当除法的分母为零时,请使用 DIVIDE 函数替代 IFERROR,以在除法分母为零时返回替代结果。

示例 1

更改:

IFERROR([Total Sales] / [Total Cost], BLANK())

改为:

DIVIDE([Total Sales], [Total Cost])

示例 2

更改:

IFERROR(([Total Sales] - [Total Cost]) / [Total Cost], 1)

改为:

DIVIDE([Total Sales] - [Total Cost], [Total Cost], 1)

为什么 Tabular Editor 会建议这样做?

在 DAX 中,一个常见的反模式是使用 IFERROR 来捕获除以零的错误。 最好避免这种写法,因为计算错误会给查询执行带来额外开销。 相反,应使用 DIVIDE 函数,因为它会在执行除法之前先判断分母是否为零。 此外,在使用浮点运算时,DIVIDE 函数比 IFERROR 函数更稳健,能更好地处理边界情况。 使用 DIVIDE 函数后,代码会更简洁,也更易理解。