March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe 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
Hi,
I have a table with payments at different dates, associated with different conditions :
Date | Sum | Condition |
01/01/2018 | 5 | A |
01/01/2018 | 20 | B |
02/01/2018 | 10 | B |
02/01/2018 | 20 | B |
03/01/2018 | 10 | A |
03/01/2018 | 20 | A |
04/01/2018 | 15 | B |
I would like to calculate the cumulative sum by date, by condition, such as :
Date | Sum | Condition | Cumulative Sum |
01/01/2018 | 5 | A | 5 |
01/01/2018 | 20 | B | 20 |
02/01/2018 | 10 | B | 30 |
02/01/2018 | 20 | B | 50 |
03/01/2018 | 10 | A | 15 |
03/01/2018 | 20 | A | 25 |
04/01/2018 | 15 | B | 65 |
I found this in a similar post :
Cumulative Sum=
CALCULATE (
SUM (Table[Sum]), FILTER (ALL (Table[Date] ),Table[Date] <= MAX ( Table[Date])))
But I don't see how to adapt to my case, so it takes in account the condition.
Any ideas?
Solved! Go to Solution.
hi, @Anonymous
After my research, you could do these as below:
First is there some errors in your expected output “Cumulative Sum”
for 02/01/2018 condition B, why one row is 30 and another is 50
but 03/01/2018 condition A, why one row is 15 and another is 25
please check the expected output “Cumulative Sum”
and I have provided two formula for you to refer to:
result 1 = CALCULATE ( SUM ( 'Table'[Sum] ), FILTER ( ALL ( 'Table' ), 'Table'[Condition] = EARLIER ( 'Table'[Condition] ) && 'Table'[Date] < EARLIER ( 'Table'[Date] ) ) ) + 'Table'[Sum]
result 2 = CALCULATE ( SUM ( 'Table'[Sum] ), FILTER ( ALL ( 'Table' ), 'Table'[Condition] = EARLIER ( 'Table'[Condition] ) && 'Table'[Date] <= EARLIER ( 'Table'[Date] ) ) )
Result:
here is pbix, please try it.
https://www.dropbox.com/s/wqt1qi8hphipnmk/Cumulative%20sum%20by%20date%20by%20condition.pbix?dl=0
Best Regards,
Lin
hi, @Anonymous
After my research, you could do these as below:
First is there some errors in your expected output “Cumulative Sum”
for 02/01/2018 condition B, why one row is 30 and another is 50
but 03/01/2018 condition A, why one row is 15 and another is 25
please check the expected output “Cumulative Sum”
and I have provided two formula for you to refer to:
result 1 = CALCULATE ( SUM ( 'Table'[Sum] ), FILTER ( ALL ( 'Table' ), 'Table'[Condition] = EARLIER ( 'Table'[Condition] ) && 'Table'[Date] < EARLIER ( 'Table'[Date] ) ) ) + 'Table'[Sum]
result 2 = CALCULATE ( SUM ( 'Table'[Sum] ), FILTER ( ALL ( 'Table' ), 'Table'[Condition] = EARLIER ( 'Table'[Condition] ) && 'Table'[Date] <= EARLIER ( 'Table'[Date] ) ) )
Result:
here is pbix, please try it.
https://www.dropbox.com/s/wqt1qi8hphipnmk/Cumulative%20sum%20by%20date%20by%20condition.pbix?dl=0
Best Regards,
Lin
Hi Lin,
What is the difference between result 1 and result 2
Regards,
Sai
Hi Lin, you are right about the error in my cumulative sum. Your formula 'result 2' works perfectly, thank you very much!
the code you posted should work fine as long as you put the Condition in the visual - e.g. in rows
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
User | Count |
---|---|
90 | |
89 | |
85 | |
73 | |
49 |
User | Count |
---|---|
167 | |
149 | |
93 | |
72 | |
58 |