Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
olik
Helper I
Helper I

Comparing between different filters on the same data

Say I have data like this:

 

DateAccountStatisticValue
30/06/20171Alpha0.85
30/06/20172Alpha0.34
30/06/20171Beta0.52
30/06/20172Beta0.29
30/06/20171Gamma0.14
30/06/20172Gamma0.25
31/07/20171Alpha0.35
31/07/20172Alpha0.23
31/07/20171Beta0.51
31/07/20172Beta0.26
31/07/20171Gamma0.16
31/07/20172Gamma0.90
31/08/20171Alpha0.88
31/08/20172Alpha0.20
31/08/20171Beta0.76
31/08/20172Beta0.79
31/08/20171Gamma0.83
31/08/20172Gamma0.66

 

Now imagine I have two bar charts (one per Account), with Date on X and Value on Y, and the different Statistics as different bars.

[In reality there are a lot more Accounts, and there are two slicers to select the two Accounts we want to compare.]

 

How can I get a third chart that shows the Value difference between the two, again per Date and Statistic?

 

I started by creating a duplicate of the dataset and now want to do something like https://community.powerbi.com/t5/Desktop/How-to-calculate-difference-after-different-filter-settings... - but there is no sensible way to relate the table with its duplicate. 

 

There must a way to do this surely?

2 ACCEPTED SOLUTIONS
Thejeswar
Resident Rockstar
Resident Rockstar

Hi @olik,

You can try the below method as well!!! FYI, I have the data that you have provided for this purpose

 

The Following are the steps.

 

1. Have 2 copies of your data (namely Table1 and Table2)

2. Join the tables based on Date Column

3. Create the following 2 measures

 

In Table1

Measure 1 = CALCULATE(SUM(Table1[Value]), FILTER(Table1, Table1[Account] = SELECTEDVALUE(Table1[Account]))) 

In Table2

 

Measure 2 = CALCULATE(SUM(Table2[Value]), FILTER(Table2, Table2[Account] = SELECTEDVALUE(Table2[Account]))) 

Create another measure to find the difference between the measures

 

Measure = [Measure 1] - [Measure 2] 

Relationship, more likely to look like (not necessarily have to be same)

 

Relationship between tables through a bridge tableRelationship between tables through a bridge table

My Output looked as shown below

 

OutputOutput

 

 As you change the accounts in your slicer, you value changes correspondingly....

 Hope this helps you get what you needed!!!

 

regards,

Thejeswar

 

View solution in original post

Thanks a lot! I used your suggestion and made the formula even easier:

 

 

Result = SUM(Table1[Value]) - CALCULATE(SUM(Table1[Value]), FILTER(ALL(Table1[Account]),Table1[Account] = SELECTEDVALUE(Table2[Account])))

 

That way I only need one measure, and technically I don't even need the full duplicate table... Just another list of accounts would do!

 

Do you see any issues with my approach? Still very new to the whole DAX coding!

 

View solution in original post

6 REPLIES 6
v-jiascu-msft
Employee
Employee

Hi @olik,

 

Could you please mark the proper answers as solutions?

 

Best Regards,

Dale

Community Support Team _ Dale
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Thejeswar
Resident Rockstar
Resident Rockstar

Hi @olik,

You can try the below method as well!!! FYI, I have the data that you have provided for this purpose

 

The Following are the steps.

 

1. Have 2 copies of your data (namely Table1 and Table2)

2. Join the tables based on Date Column

3. Create the following 2 measures

 

In Table1

Measure 1 = CALCULATE(SUM(Table1[Value]), FILTER(Table1, Table1[Account] = SELECTEDVALUE(Table1[Account]))) 

In Table2

 

Measure 2 = CALCULATE(SUM(Table2[Value]), FILTER(Table2, Table2[Account] = SELECTEDVALUE(Table2[Account]))) 

Create another measure to find the difference between the measures

 

Measure = [Measure 1] - [Measure 2] 

Relationship, more likely to look like (not necessarily have to be same)

 

Relationship between tables through a bridge tableRelationship between tables through a bridge table

My Output looked as shown below

 

OutputOutput

 

 As you change the accounts in your slicer, you value changes correspondingly....

 Hope this helps you get what you needed!!!

 

regards,

Thejeswar

 

tiffanyt123_0-1652943282327.png

Hello, I have 2 tables (coming from the same data source, I duplicated the tables and filtered by "version date"). I want to compare the data between them. Is it possible to use a DAX Formula to do so?

 

Thanks a lot! I used your suggestion and made the formula even easier:

 

 

Result = SUM(Table1[Value]) - CALCULATE(SUM(Table1[Value]), FILTER(ALL(Table1[Account]),Table1[Account] = SELECTEDVALUE(Table2[Account])))

 

That way I only need one measure, and technically I don't even need the full duplicate table... Just another list of accounts would do!

 

Do you see any issues with my approach? Still very new to the whole DAX coding!

 

Thejeswar
Resident Rockstar
Resident Rockstar

Hi @olik,

Your re-did DAX looks fine.

 

I think the new DAX that you have written should be good enough to get the difference

 

 

Regards,

Thejeswar

olik
Helper I
Helper I

I think I have found a way, using an additional measure based on SELECTEDVALUE parameters and then defined as such:

 

CALCULATE
(
AVERAGE(Table1[Value]),
FILTER(
ALL(Table1[Account]),
[Account]=Table2[Selected Account]
)
)

 

Surely that can't be the best way though?

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.