Forum Discussion
Cumulative Totals
Hi,
I'm struggling with the DAX for calculating the monthly cumulative shown below. (resets on each month)
Ive tried using the following but no joy! Any help would be really appreciated.
Monthly Cumulative =
CALCULATE(
SUM([Margin]),
FILTER(ALL('Table'[date],
'Table'[date] >= STARTOFMONTH('Table'[date] ) &&
'Table'[date] <= MAX('Table'[date])
))
Hi,
Assuming Date and Margin are columns already present in your source data table, perform the following steps:
- Create a Calendar Table
- Build a relationship (Many to One and Single) from the Date column of your Data Table to the Date column of your Calendar Table
- To your Table/Matrix visual, drag Date from the Calendar Table
- Write these measures:
Total = sum(Data[Margin])
MTD Total = calculate([Total],datesmtd(calendar[date]))
Hope this helps.
Hi Ashish, I decided to group by date in power query as that was effectively what I was doing on the table visual in power BI. I was then able to use your method for cumulative totals on the daily target. Many thanks for your assistance with this, really appreciated
10 Replies
- Ashish_Mathur
Super User
Hi,
Assuming Date and Margin are columns already present in your source data table, perform the following steps:
- Create a Calendar Table
- Build a relationship (Many to One and Single) from the Date column of your Data Table to the Date column of your Calendar Table
- To your Table/Matrix visual, drag Date from the Calendar Table
- Write these measures:
Total = sum(Data[Margin])
MTD Total = calculate([Total],datesmtd(calendar[date]))
Hope this helps.
- Jay0610Frequent Visitor
Excellent thanks Ashish, Im starting to see the importance of calendar tables!
- Ashish_Mathur
Super User
You are welcome.
- Jay0610Frequent Visitor
Hi Ashish, do you know if I could I use a similar approach for a 'daily cumulative total' as shown below? Happy to post this as a new topic if thats better?
Saying 'maximum' might be misleading here. The target value will be repeated for each date. So for example, all rows for 01/02/2022 will be 100.Also the daily cumulative total would need to reset each month as shown.
- Ashish_Mathur
Super User
Hi,
Share the link from where i can download your PBI file.
- Jihwan_Kim
Super User
Hi,
Please check the below picture and the attached pbix file.
Monthly Cumulative =VAR currentdate = 'Table'[Date]VAR currentmonth =STARTOFMONTH ( 'Table'[Date] )VAR currentmargin = 'Table'[Margin]RETURNCALCULATE (SUM ( [Margin] ),FILTER ('Table',STARTOFMONTH ( 'Table'[Date] ) = currentmonth&& 'Table'[date] <= currentdate&& 'Table'[Margin] <= currentmargin))- Jay0610Frequent Visitor
many thanks Jihwan, interesting to see the use of variables in the calculation. Im not sure why but this method didnt quite work for me, I'll need to spend more time looking at this to understand why. I tried the calendar table association as described by Ashish and this worked 👍
- NorbertManuelFrequent Visitor
Hi, I tried to leverage your solution for my own challenge, so I already have a Calendar dim table set as date table, and a table with events that have a value 'Converted Amount (m€)' which is recurring revenue ie need to be cumulated each month from a start date and then continued til end of calendar.
The issue with I have with your solution is that I have a message error "a single value for date cannot be determined". Any idea? thanks