代码操作 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 函数后,代码会更简洁,也更易理解。