我想找到2个表之间所有公共元素的和之差。
我们有一张大桌子(表A)
您会发现ID和日期都不能单独用作唯一标识符。
然后,我们必须找到所有常见元素之和之间的差。
表1和表2可能不是真实表,而可能只是为了创建度量而声明的虚拟表(使用VAR定义)。
我尝试了以下代码:
差异= VAR Table1 = ADDCOLUMNS('TableA',“ id”,CALCULATE(VALUES('TableA'[Id]),ALL('Date'),ALL('TableA'),USERELATIONSHIP('Date'[截至日期],Previous_Date [Previous_Date]),USERELATIONSHIP('Date'[As of Date],'TableA'[Date])),“ Value”,'TableA'[Value])
VAR Table2 = ADDCOLUMNS('TableA',“ id”,CALCULATE(VALUES('TableA'[Id]),ALL('TableA'),USERELATIONSHIP('Date'[截至日期],'TableA'[Date])) ,“ Value”,'TableA'[Value])
VAR abc = CALCULATE(SUMX(Table1,IF(VALUES('TableA'[Id])in Table1 && VALUES('TableA'[Id])in Table2,Table1 [Value])))
VAR pqr = CALCULATE(SUMX(Table2,IF(Table1中的VALUES('TableA'[Id])&& VALUES(Table2,Table2 [Value]中的'TableA'[Id])))
返回 abc-pqr
答案 0 :(得分:0)
前提条件:-将两个表中id列的数据类型都更改为Text。
然后,在表1中创建此计算列:-
Common_NotCommon_Table1 =
Var out1 = LOOKUPVALUE(Table2[id],Table2[id],Table1[id])
Var out2 = IF(out1 <> "", "Common","Not-Common")
return out2
然后在表2中同样创建此计算列:-
Common_NotCommon_Table2 =
Var out1 = LOOKUPVALUE(Table1[id],Table1[id],Table2[id])
Var out2 = IF(out1 <> "", "Common","Not-Common")
return out2
然后创建两个度量以查找总和-可以在任何表中创建。
Sum_Common_Table1 = CALCULATE(SUM(Table1[corresponding value]), FILTER(Table1, Table1[Common_NotCommon_Table1] = "Common"))
Sum_Common_Table2 = CALCULATE(SUM(Table2[corresponding value]), FILTER(Table2, Table2[Common_NotCommon_Table2] = "Common"))
然后在任何一个表中创建差异度量:-
Common_Diff = [Sum_Common_Table2] - [Sum_Common_Table1]
“预期输出”如下所示,
如果有帮助,请接受答案,让我知道它如何为您服务。