DAX if else 用于衡量

DAX if else for measure

如何在度量中为 DAX 使用 if else。如果行值 =1,则取 var a 计算值,否则取 var b 计算值

x:=var a=[DATA1] var b=[DATA2] return(if([HOUR]=1),a,b)

我使用上面的公式时出错

您的问题似乎是您在创建度量时没有聚合列。度量仅适用于在给定上下文中聚合数据,通常如果您想对每行执行计算,您应该使用计算列而不是度量。

计算列的 DAX 表达式应为:

MyColumn = IF([HOUR] = 1, [DATA1], [DATA2])

否则,如果您想使用度量,则必须在给定上下文中明确聚合列值,即:

MyMeasure =
VAR a =
    FIRSTNONBLANK ( ExampleTable[Data1], 0 )
VAR b =
    FIRSTNONBLANK ( ExampleTable[Data2], 0 )
RETURN
    IF ( SUM ( ExampleTable[Hour] ) = 1, a, b )

或者简单地说:

MyMeasure =
IF (
    SUM ( [Hour] ) = 1,
    FIRSTNONBLANK ( ExampleTable[Data1], 0 ),
    FIRSTNONBLANK ( ExampleTable[Data2], 0 )
)

如果有帮助请告诉我。