Forum Discussion

pan's avatar
pan
Frequent Visitor
8 years ago
Solved

IF plus Rolling Average?

Hi!

 

I have current (2017) annual data that I have to compare against a 3 year rolling average for volume by product. However, for some products, there isn't always annual data available, i.e., some products have data for 2016 but not for 2015, etc. 

 

For ex:

2017, Product A, Country A, Volume

2017, Product B, Country A, Volume

2017, Product C, Country A, Volume

2016, Product A, Country A, Volume

2016, Product B, Country A, Volume

2015, Product A, Country A, Volume

2014, Product A, Country A, Volume

2014, Product C, Country A, Volume

 

In such case, only product A should have a rolling average which I will then compare with current year volume.

 

PS. Not pressing but can the same process be extended per country as well?

 

Can somebody help? I'm fairly new to Power BI. Thanks!

  • Anonymous's avatar
    Anonymous
    8 years ago

    pan,

    What DAX formula do you use to calculate rolling average? I make a test using the following DAX to calculate rolling average, the rolling average measure returns value even some products have no data for 2015. And when you create visuals using different legend level(Product or County) with this measure, the measure returns expected values.

    {Base value} rolling average = 
    IF(
     ISFILTERED({Date}),
     ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy."),
     VAR __LAST_DATE =
      LASTDATE({Date}.[Date])
     RETURN
      AVERAGEX(
       DATESBETWEEN(
        {Date}.[Date],
        DATEADD(__LAST_DATE, {Periods Before}, {Period}),
        DATEADD(__LAST_DATE, {Periods After}, {Period}),
       ),
       CALCULATE({Base value})
      )
    )




    Reference:
    https://community.powerbi.com/t5/Quick-Measures-Gallery/Rolling-Average/m-p/160720

    Regards,
    Lydia

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    pan,

    What DAX formula do you use to calculate rolling average? I make a test using the following DAX to calculate rolling average, the rolling average measure returns value even some products have no data for 2015. And when you create visuals using different legend level(Product or County) with this measure, the measure returns expected values.

    {Base value} rolling average = 
    IF(
     ISFILTERED({Date}),
     ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy."),
     VAR __LAST_DATE =
      LASTDATE({Date}.[Date])
     RETURN
      AVERAGEX(
       DATESBETWEEN(
        {Date}.[Date],
        DATEADD(__LAST_DATE, {Periods Before}, {Period}),
        DATEADD(__LAST_DATE, {Periods After}, {Period}),
       ),
       CALCULATE({Base value})
      )
    )




    Reference:
    https://community.powerbi.com/t5/Quick-Measures-Gallery/Rolling-Average/m-p/160720

    Regards,
    Lydia