Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago

Previous Period Average Based On Date Range Selection

Hi Everyone, 

 

I'm a bit stuck on something. I'm trying to find previous period average sales. This on its own i've been able to do, however, where i'm getting stuck is i need to find average sales for the [date range selected on slicer] minus 7 days. 

 

For example: 

If i select date range as 25/09/20 - 30/09/20, then the 'previous period' would be 18/09/20 - 24/09/20. So it's the min date of what the user selects minus 7 days. 

 

I tried that logic but i think i'm using the incorrect functions because i keep getting errors. 

 

Is anyone able to shed some light on what approach i need to take? 

 

Thanks guys!

4 Replies

  • Anonymous , Try a trailing 7 days measure. But use date table with that

     

    Trailing 7 days =CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-7,DAY))

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi amitchandak - I keep getting the same average as the time period selected, rather than the average for the previous period. This is what i'm using: 

       

      var average = SUMMARIZE('FactSales', 'Date'[Date], "AverageAmount", SUM('FactSales'[SalesValue])), [AverageAmount])

         return 
            CALCULATE(_average, DATEADD('Date'[Date], -7, DAY))
       
       
      • amitchandak's avatar
        amitchandak
        Super User

        Anonymous , try like

         

        CALCULATE(SUM('FactSales'[SalesValue]), DATEADD('Date'[Date], -7, DAY))

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous,

    You can also take a look at the following blog to use the date function to manually define the filter range to calculate the rolling average:

    Time Intelligence "The Hard Way" (TITHW)  

    Regards,

    Xiaoxin Sheng