DAX Rolling 12 Month Average Measure

Averages monthly sales over the trailing twelve months, smoothing out seasonal spikes.

Time IntelligenceAdvancedtime intelligencerollingaverage

DAX code

Rolling 12 Month Average =
VAR MonthlySales =
    ADDCOLUMNS(
        DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -12, MONTH),
        "@MonthSales", CALCULATE([Total Sales], DATESMTD('Date'[Date]))
    )
RETURN
    AVERAGEX(SUMMARIZE(MonthlySales, 'Date'[Year], 'Date'[Month]), [Total Sales])

Generate a Power BI date table

Notes

Requires a continuous, marked Date table; simplify by pre-aggregating to a month table if this runs slowly on large models.

Requirements

Builds on these measures

How to use this measure

  1. In Power BI Desktop, select the table that should hold the measure and choose New measure on the ribbon.
  2. Paste the code, then replace the placeholder table and column names with your own. The My table names fields above do this for you.
  3. Run it through the DAX Formatter if you want it laid out in your team's style.

Related DAX measures

More DAX resources

Browse all 175 measures in the Power BI DAX Measures Library, or search the library for something similar to Rolling 12 Month Average.