【发布时间】:2017-01-17 06:59:32
【问题描述】:
如何在度量中将 if else 用于 DAX。如果行值 =1 则取 var a 计算值,否则取 var b 计算值
x:=var a=[DATA1]
var b=[DATA2]
return(if([HOUR]=1),a,b)
我使用上面的公式得到错误
【问题讨论】:
标签: if-statement return dax tabular measure
如何在度量中将 if else 用于 DAX。如果行值 =1 则取 var a 计算值,否则取 var b 计算值
x:=var a=[DATA1]
var b=[DATA2]
return(if([HOUR]=1),a,b)
我使用上面的公式得到错误
【问题讨论】:
标签: if-statement return dax tabular measure
您的问题似乎是您在创建度量时没有聚合列。度量仅适用于在给定上下文中聚合数据,通常如果您想按行执行计算,您应该使用计算列而不是度量。
计算列的 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 )
)
如果这有帮助,请告诉我。
【讨论】: