2017-01-17 100 views
1

如何在測量中使用DAX。如果行值= 1,則採取了var其他的計算值取變種B中算出的值DAX if else for measure

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

我使用上述公式

回答

0

看來你的問題得到錯誤是,你是不是聚合的列同時創造措施。度量僅適用於在給定上下文中聚合數據,通常如果您想要按行執行計算,則應使用計算列而不是度量。

而且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) 
) 

讓我知道,如果這有助於。