Forum Discussion

Mystery's avatar
Mystery
Helper I
6 years ago

Cumulative Sum using DAX

Hi,

 

I am trying to compute the cumulative sum using below DAX formula:

 

Cumulative SUM=
VAR MAXDATE = CALCULATE (value(LEFT(MAX ('Date'[DateKey]),6) ))

RETURN
IF (
LEFT(MIN('Revenue'[DateKey]),6) <= CALCULATE (LEFT(MAX ('Date'[DateKey]),6) , ALL('Date'[DateKey]) ) ,
CALCULATE (
SUM('Revenue'[ActualCount]),
ALL( 'Revenue'[DateKey]) ,
VALUE(left('Revenue'[DateKey],6)) <= MAXDATE,

'Revenue'[Col]="ABC"
)

)

 

DateKey is a column stored as YYYYMMDD.

However everytime I get the values for an individual month only and not a cumulative sum.

 

Please suggest a fix or a workaround for this.

4 Replies

  • Hi Mystery 

    I suggest you to convert this datekey into date in power query (you can use add column from example) and then compute cumulative Sum with date.

    Best

    Patrick

    • Mystery's avatar
      Mystery
      Helper I

      Date Key column actually holds a date in YYYYMMDD format only.

       

      Also this DAX is written in tabular model and not using Power BI desktop.Thats the approach in my project.

       

      The irony is although the same formula works in Power BI however does not yield correct results when written in tabular model.

       

      Any pointers are appreciated.

  • v-yuta-msft's avatar
    v-yuta-msft
    Community Support

    Mystery ,

     

    You may try modifying the measure as below:

    Cumulative SUM =
    VAR MAXDATE =
        VALUE ( LEFT ( MAX ( 'Date'[DateKey] ), 6 ) )
    RETURN
        IF (
            LEFT ( MIN ( 'Revenue'[DateKey] ), 6 )
                <= CALCULATE ( LEFT ( MAX ( 'Date'[DateKey] ), 6 ), ALL ( 'Date' ) ),
            CALCULATE (
                SUM ( 'Revenue'[ActualCount] ),
                ALL ( 'Revenue' ),
                VALUE ( LEFT ( 'Revenue'[DateKey], 6 ) ) <= MAXDATE,
                'Revenue'[Col] = "ABC"
            )
        )
    

    Community Support Team _ Jimmy Tao

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.