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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
moia79
Helper I
Helper I

Cumulative sum in a table

Hello all,

 

I'm struggling to calculate a cumulative difference between two columns. 

 

My dataset is a table that, for each month of the year, reports two values: "Sum of Requested orders" and "Sum of Confirmed orders".

Each sum is the amount of orders requested or confirmed in each month.

 

I would like to add another column, for each month, that calculates the difference between the two columns. This additional column however should also be comulative and sum the diffences for the whole year.

 

Data example:

JanuaryFebruaryMarchApril
RequestedConfirmed**bleep** DifferenceRequestedConfirmed**bleep** DifferenceRequestedConfirmed**bleep** DifferenceRequestedConfirmed**bleep**. Difference
2400230010010008003001900175045020001500950

 

I arrive to calculate the Difference in each month, but struggle to create the cumulative difference

 

any suggestion from the guru of DAX? 

🙂

1 ACCEPTED SOLUTION
tamerj1
Super User
Super User

Hi @moia79 
Please try

Difference =
VAR CurrentMonth =
    MAX ( 'Date'[Month Number] )
VAR T1 =
    CALCULATETABLE (
        VALUES ( 'Date'[Month] ),
        'Date'[Month Number] <= CurrentMonth
    )
VAR T2 =
    ADDCOLUMNS (
        T1,
        "@Difference",
            VAR CurrentMonth1 = 'Date'[Month]
            RETURN
                CALCULATE (
                    [Requested] - [Confirmed],
                    ALL ( 'Date'[Month] ),
                    'Date'[Month] = CurrentMonth1
                )
    )
RETURN
    SUMX ( T2, [@Difference] )

View solution in original post

4 REPLIES 4
Stachu
Community Champion
Community Champion

That looks like an output table, i.e. matrix visual.

What is your input data? If it looks like the table below then it's an easy setup

MonthRequestedConfirmed
Jan24002300
Feb1000800

 



Did I answer your question? Mark my post as a solution!
Thank you for the kudos 🙂

hi @Stachu 

 

yes, table is as you reported. For each row I need to calculate the difference (Requested - Confirmed). 

 

Moreover, I need that this difference is cumulative, so that each month difference is summed to the one calculated in the previous month

 

e.g.:

Jan = 2.400 - 2.300 = 100

Feb = (1.000 - 800) + January = 200 + 100 = 300

March = (xxx - xxx) + Feb = ( ... ) + 300

tamerj1
Super User
Super User

Hi @moia79 
Please try

Difference =
VAR CurrentMonth =
    MAX ( 'Date'[Month Number] )
VAR T1 =
    CALCULATETABLE (
        VALUES ( 'Date'[Month] ),
        'Date'[Month Number] <= CurrentMonth
    )
VAR T2 =
    ADDCOLUMNS (
        T1,
        "@Difference",
            VAR CurrentMonth1 = 'Date'[Month]
            RETURN
                CALCULATE (
                    [Requested] - [Confirmed],
                    ALL ( 'Date'[Month] ),
                    'Date'[Month] = CurrentMonth1
                )
    )
RETURN
    SUMX ( T2, [@Difference] )

thanks @tamerj1 it works perfectly

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.