Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Busno
Helper I
Helper I

Rolling average 30 day

Dear all, I need some help here.

I want to create a 30 day rolling average. I have a daily sales record In column C and I want to average every 30 days like column D

How can I do it in Power Bi?

Rolling 30 days.JPG

if you need more information please tell me

 

Thank you  all

Busno

1 ACCEPTED SOLUTION

Hi @Busno ,

 

If you need to calculate according to the calendar, it should be like this.

DATESINPERIOD() function takes into account dates that do not exist in your table.

Measure = 
CALCULATE(
    AVERAGE(Sheet3[C]),
    DATESINPERIOD( Sheet3[A], MAX(Sheet3[A]), -30, DAY ),
    ALL(Sheet3)
)

If you need to calculate according to the number of days in the table, it should be like this.

Measure 2 = 
CALCULATE(
    AVERAGE(Sheet3[C]),
    FILTER(
        ALL(Sheet3),
        Sheet3[Index] <= MAX(Sheet3[Index]) && Sheet3[Index] >= MAX(Sheet3[Index]) - 29
    )
)

v-lionel-msft_0-1602484968916.png

Please refer to my .pbix file.

 

Best regards,
Lionel Chen

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

 

View solution in original post

3 REPLIES 3
amitchandak
Super User
Super User

@Busno , With a date table

Rolling 30 = CALCULATE(Average(Sales[Sales record]),DATESINPERIOD('Date'[Date ],MAX(Sales[Sales Date]),-30,DAY))

or
Rolling 30 = CALCULATE(Average(Sales[Sales record]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-30,DAY))

 

To get the best of the time intelligence function. Make sure you have a date calendar and it has been marked as the date in model view. Also, join it with the date column of your fact/s. Refer :
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

See if my webinar on Time Intelligence can help: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...


Appreciate your Kudos.

Dear, A 

I already try you DAX but the result not the same as excel I attached.

 

Rolling 30 days2.JPG

 Thank you for your help

Busno

Hi @Busno ,

 

If you need to calculate according to the calendar, it should be like this.

DATESINPERIOD() function takes into account dates that do not exist in your table.

Measure = 
CALCULATE(
    AVERAGE(Sheet3[C]),
    DATESINPERIOD( Sheet3[A], MAX(Sheet3[A]), -30, DAY ),
    ALL(Sheet3)
)

If you need to calculate according to the number of days in the table, it should be like this.

Measure 2 = 
CALCULATE(
    AVERAGE(Sheet3[C]),
    FILTER(
        ALL(Sheet3),
        Sheet3[Index] <= MAX(Sheet3[Index]) && Sheet3[Index] >= MAX(Sheet3[Index]) - 29
    )
)

v-lionel-msft_0-1602484968916.png

Please refer to my .pbix file.

 

Best regards,
Lionel Chen

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

 

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.