本文翻译自国际Power BI大师Alberto Ferrari&Marco Russo的文章——《The COALESCE function in DAX》,COALESCE是2020年3月引入的DAX函数。本文介绍了COALESCE的作用以及如何通过去掉冗长的条件来简化DAX表达式,但仍能获得相同的结果。
为可能为空的计算结果提供默认值是编写DAX代码的常见需求。解决此需求的经典方法是使用If语句。例如,下面的代码返回Sales[Net Price]列或Sales[Unit Price]列的值,以最先不为空的值为准:
IF (
ISBLANK ( Sales[Net Price] ),
Sales[Unit Price],
Sales[Net Price]
)
当考虑的表达式是度量值而不是列引用时,最佳的做法是将第一个度量值的结果保存在变量中。该变量通过确保仅对度量值进行一次评估来提高性能:
VAR MyResult = [MyMeasure]
VAR DefaultValue = [Default Measure]
VAR Result =
IF (
ISBLANK ( MyResult ),
DefaultValue,
MyResult
)
RETURN
Result
这个表达式的替代方法需要对同一个MyMeasure度量进行两次引用,这可能导致对同一个表达式求双重值以获得相同的结果。以下表达式第一次计算MyMeasure以测试其值是否为空,如果MyMeasure返回非空值,则第二次计算IF函数的结果:
IF (
ISBLANK ( [MyMe