我试图找到与表1中存在但表2中没有的键对应的值的总和。
这些表是根据某些过滤器创建的,代表2个不同日期的值。
这两个不同的日期是从2个不同的日期表中选择的,它们具有非活动的关系,是为此专门创建的。
我想创建一个找出总和的度量。
以下是我使用的语法:
Difference =
VAR
Table1 = CALCULATETABLE(VALUES('TableA'[Id]), 'TableA'[Type] = "ABC", ALL('Date'), USERELATIONSHIP('Date'[As of Date], Previous_Date[Previous_Date]),USERELATIONSHIP('Date'[As of Date], 'TableA'[As of Date]))
VAR
Table2 = CALCULATETABLE(VALUES('TableA'[Id]), 'TableA'[Type] = "ABC", USERELATIONSHIP('Date'[As of Date], 'TableA'[As of Date]))
RETURN
IF(AND(VALUES('TableA'[Id]) IN Table1 , NOT(VALUES('TableA'[Id])) IN Table2),
CALCULATE(SUM('TableA'[Values])),0)
它没有错误。但是,当我将度量放置在KPI视觉上时,我收到以下消息:
请告诉我语法有什么问题。另外,请告诉我是否可以编写更好的代码。
请帮助。
答案 0 :(得分:0)
出现错误的原因是在编写x
时期望x IN Table1
有一个单一值,但是使用VALUES
函数可以返回一个列表,而不是一个单一值。
在RETURN
之后,我会尝试类似的方法:
SUMX (
'TableA',
IF ( 'TableA'[Id] IN Table1 && NOT ( 'TableA'[Id] IN Table2 ), 'TableA'[Value] )
)
这将遍历TableA
的每一行,并检查每一行中的Id
值是否在您计算的表中。如果满足条件,它将添加Value
。否则,由于没有第三个参数,IF
返回一个空白(总和与0
相同)。