首页 > 解决方案 > 如何找到一个表中存在而另一表中缺失的值的总和

问题描述

我试图找到与表 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 视觉对象上时,我收到以下消息:

在此处输入图像描述

请告诉我语法有什么问题。另外,请让我知道是否可以编写更好的代码。

请帮忙。

标签: powerbidax

解决方案


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求和相同),因为没有第三个参数。


推荐阅读