Forum Discussion

SimpleChemist's avatar
SimpleChemist
Frequent Visitor
1 year ago
Solved

Daily Difference

Good day!

I have a bit of a problem that I feel should be simple but is stumping me:

 
DateItemCumulative SalesDaily Sales
2025-05-05A305
2025-05-05B41
2025-05-05C153
2025-05-04A2510
2025-05-04B31
2025-05-04C122
2025-05-03A15 
2025-05-03B2 
2025-05-03C10 
 

 

I am trying to calculate the Daily Sales column, which looks at difference per day of each item. I have attempted calculate(max(cumulative sales),dateadd(date,-1,day)), as well as iterations with previousday, allexcept, etc. Any guidance would be splendid!

  • SimpleChemist's avatar
    SimpleChemist
    1 year ago

    This was actually quite close! (Had never used Coalesce before so that was interesting).  Actually found a workaround after posting listed below:

     

    DailyDiff =
    var _Date = '[DATE]
    var _Cav = '[ID]
    var _LastDate = calculate(max([Date]),[ID]=_Cav,[Date]<_Date,all('TABLE'))
    return
    '[SALES] - CALCULATE(max([SALES]),'[ID]=_Cav,'[DATE]=_LastDate,all('TABLE'))

2 Replies

  • Hi SimpleChemist ,

     

    You can achieve your required output in the following manner: Use a calendar table related to your fact table and subtract yesterday’s cumulative value from today’s within the same item context.

    Daily Sales :=
    VAR TodayVal =
        MAX ( Sales[Cumulative Sales] )
    VAR YesterdayVal =
        CALCULATE (
            MAX ( Sales[Cumulative Sales] ),
            DATEADD ( 'Date'[Date], -1, DAY )
        )
    RETURN
    TodayVal - COALESCE ( YesterdayVal, 0 )
    

    DATEADD shifts the calendar back one day while the existing filter keeps the same item, giving the daily increment.

     

    Best regards,

    • SimpleChemist's avatar
      SimpleChemist
      Frequent Visitor

      This was actually quite close! (Had never used Coalesce before so that was interesting).  Actually found a workaround after posting listed below:

       

      DailyDiff =
      var _Date = '[DATE]
      var _Cav = '[ID]
      var _LastDate = calculate(max([Date]),[ID]=_Cav,[Date]<_Date,all('TABLE'))
      return
      '[SALES] - CALCULATE(max([SALES]),'[ID]=_Cav,'[DATE]=_LastDate,all('TABLE'))