0

I want to find the difference between the sum of all the common elements between 2 tables.

We have one large table (Table A)

enter image description here

You can observe that neither the id, nor the date can be used individually as a unique identifier.

Based on certain filters(one of it is date), we have to create 2 tables: enter image description here

We then have to find the difference between the sum of all the common elements.

Table 1 and 2 may not be real tables and could be simply virtual tables (defined using VAR) declared in order to create the measure.

I have tried the following code:

Difference = VAR Table1= ADDCOLUMNS('TableA', "id", CALCULATE(VALUES('TableA'[Id]), ALL('Date'),ALL('TableA'), USERELATIONSHIP('Date'[As of 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'[As of 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(VALUES('TableA'[Id]) IN Table1 && VALUES('TableA'[Id]) in Table2,Table2[Value])) )

RETURN abc-pqr

1 Answer 1

0

Pre-requisite :- Change the Data Type of your id columns to Text in both the tables.

Then, Create this Calculated Column in Table1 :-

Common_NotCommon_Table1 = 
         Var out1 = LOOKUPVALUE(Table2[id],Table2[id],Table1[id])
         Var out2 = IF(out1 <> "", "Common","Not-Common")
return out2

Then Create this Calculated Column in Table2 Likewise :-

Common_NotCommon_Table2 = 
         Var out1 = LOOKUPVALUE(Table1[id],Table1[id],Table2[id])
         Var out2 = IF(out1 <> "", "Common","Not-Common")
return out2

Then Create the two Measures to find the Sum - this can be created in any of your tables.

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")) 

Then Create the Difference Measure in any one of the Table:-

Common_Diff = [Sum_Common_Table2] - [Sum_Common_Table1]

The Output as Expected looks like,

enter image description here

Kindly accept the answer if it helps and let me know, how it works for you.

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for the reply! Is there any way I can do all the above processes in a single measure field?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.