Forum Discussion

Jay0610's avatar
Jay0610
Frequent Visitor
4 years ago
Solved

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:

    1. Create a Calendar Table
    2. Build a relationship (Many to One and Single) from the Date column of your Data Table to the Date column of your Calendar Table
    3. To your Table/Matrix visual, drag Date from the Calendar Table
    4. Write these measures:

    Total = sum(Data[Margin])

    MTD Total = calculate([Total],datesmtd(calendar[date]))

    Hope this helps.

  • Jay0610's avatar
    Jay0610
    4 years ago

    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

  • Hi,

    Assuming Date and Margin are columns already present in your source data table, perform the following steps:

    1. Create a Calendar Table
    2. Build a relationship (Many to One and Single) from the Date column of your Data Table to the Date column of your Calendar Table
    3. To your Table/Matrix visual, drag Date from the Calendar Table
    4. Write these measures:

    Total = sum(Data[Margin])

    MTD Total = calculate([Total],datesmtd(calendar[date]))

    Hope this helps.

    • Jay0610's avatar
      Jay0610
      Frequent Visitor

      Excellent thanks Ashish, Im starting to see the importance of calendar tables!

    • Jay0610's avatar
      Jay0610
      Frequent 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.

       

       

       

       

  • 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]
    RETURN
    CALCULATE (
    SUM ( [Margin] ),
    FILTER (
    'Table',
    STARTOFMONTH ( 'Table'[Date] ) = currentmonth
    && 'Table'[date] <= currentdate
    && 'Table'[Margin] <= currentmargin
    )
    )
     
    • Jay0610's avatar
      Jay0610
      Frequent 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 👍

    • NorbertManuel's avatar
      NorbertManuel
      Frequent 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