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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
AmandaLu
Frequent Visitor

Calculate the difference between two columns in a matrix when each row is a measure

AmandaLu_0-1657837571018.png

Hi, 

 

I'm working on a matrix in Power BI that compares this fiscal years' sales, transactions, units, customerscount to last year's.  Each row is it's own calculated measure.  Is there any possible way to create a difference column? 

 

Any help would be greatly appreciated.

 

1 ACCEPTED SOLUTION
tamerj1
Super User
Super User

Hi @AmandaLu 
Yes that can be done utilizing the column subtotal. For example

Measure2 =
VAR CurrentValue = [Measure1]
VAR MaxYear =
    MAX ( 'Date'[Year] )
VAR MinYear =
    MIN ( 'Date'[Year] )
VAR MaxYearValue =
    CALCULATE ( [Measure1], 'Date'[Year] = MaxYear )
VAR MinYearValue =
    CALCULATE ( [Measure1], 'Date'[Year] = MinYear )
RETURN
    IF ( HASONEVALUE ( 'Date'[Year] ), CurrentValue, MaxYearValue - MinYearValue )

And you can manually change the name from "Total" to "Difference"

View solution in original post

9 REPLIES 9
AmandaLu
Frequent Visitor

Thanks for @tamerj1 's solution, I fixed this problem. 

 

There are the steps that we take to solve this problem:

Step 1: add two more rows named "Difference", and "Difference %" to the original table (so besides the year column, we have two more columns)

 

Step 2: use DAX to calculate each measure before moving them to the values (switch values to rows)

 

For example, the DAX for customer measure is:

Customers Measure =
VAR NormalValue =
    SUM ( Customer_Merged[Customers] )
VAR Value2022 =
    CALCULATE (
        SUM ( Customer_Merged[Customers] ),
        Customer_Merged[Transaction_FiscalYear] = "2022",
        ALLEXCEPT (
            Customer_Merged,
            Customer_Merged[Customer_TenureGroup_TTM],
            Customer_Merged[Transaction_FiscalQuarter]
        )
    )
VAR Value2023 =
    CALCULATE (
        SUM ( Customer_Merged[Customers] ),
        Customer_Merged[Transaction_FiscalYear] = "2023",
        ALLEXCEPT (
            Customer_Merged,
            Customer_Merged[Customer_TenureGroup_TTM],
            Customer_Merged[Transaction_FiscalQuarter]
        )
    )
VAR Difference = Value2023 - Value2022
VAR DifferencePercent =
    FORMAT ( DIVIDE ( DifferenceValue2022 )"Percent" )
RETURN
    SWITCH (
        TRUE (),
        SELECTEDVALUE ( Customer_Merged[Transaction_FiscalYear] ) = "Difference"Difference,
        SELECTEDVALUE ( Customer_Merged[Transaction_FiscalYear] ) = "% Difference"DifferencePercent,
        NormalValue
    )

 

Step 3: move this customer measure to values and do the same thing for all the measures 

AmandaLu_0-1658160838170.png

 

 

AmandaLu
Frequent Visitor

Thank you @tamerj1 ! 

tamerj1
Super User
Super User

Hi @AmandaLu 
Yes that can be done utilizing the column subtotal. For example

Measure2 =
VAR CurrentValue = [Measure1]
VAR MaxYear =
    MAX ( 'Date'[Year] )
VAR MinYear =
    MIN ( 'Date'[Year] )
VAR MaxYearValue =
    CALCULATE ( [Measure1], 'Date'[Year] = MaxYear )
VAR MinYearValue =
    CALCULATE ( [Measure1], 'Date'[Year] = MinYear )
RETURN
    IF ( HASONEVALUE ( 'Date'[Year] ), CurrentValue, MaxYearValue - MinYearValue )

And you can manually change the name from "Total" to "Difference"

Hi @tamerj1 ,

 

Thank you so much for your reply!

 

I added the subtotal column, but I cannot edit the power query of that column. Could you help? 

 

Also, do you know how to add the % diff column (which is (this year's measure - last year's measure)/last year's measure), we can only add one column right? 

 

I have been struggling with this problem for several days. Thank you again for your help!

AmandaLu_0-1657900164776.png

 

Hello, did you ever find the solution to your problem? I am interested to find out what the resolution was as I'm facing a similar issue.

Hi @AmandaLu 

Ok. Can you join a zoom meeting?

That would be great! Are you able to join the meeting at 1 pm today? or just let me know what time is convenient for you.


Join Zoom Meeting
https://zoom.us/j/96020170183?pwd=YzBFWVhhdXRhcHdHT0Z2aHc1clRTdz09

Meeting ID: 960 2017 0183
Passcode: yLZ8fd

Can we connect now?

Yes!

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.