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
Nun
Resolver I
Resolver I

Alternative measure to get the same result of quick measure rolling avg 3m.

Hello,

I am using the quick measure Rolling avg 3 months.

The formula is:

IF(     ISFILTERED('Posting date'[Date]),     ERROR("Time intelligence quick measures can only be grouped or filtered by the Power BI-provided date hierarchy or primary date column."),    

 VAR __LAST_DATE = ENDOFMONTH('Calendar'[Date].[Date])   

  VAR __DATE_PERIOD =         DATESBETWEEN(             'Calendar'[Date].[Date],             STARTOFMONTH(DATEADD(__LAST_DATE, -3, MONTH)),             __LAST_DATE         )     RETURN         AVERAGEX(             CALCULATETABLE(                 SUMMARIZE(                     VALUES('Calendar'),                     'Calendar'[Date].[Year],                     'Calendar'[Date].[QuarterNo],                     'Calendar'[Date].[Quarter],                     'Calendar'[Date].[MonthNo],                     'Calendar'[Date].[Month] ),                 __DATE_PERIOD             ),             

CALCULATE(                 SUM('sales'[Amount]),                 ALL('Calendar'[Date].[Day])             )         ) )

When I export in Excel in Power BI service to analyze, In pivot table fields, using as filter Calendar date and as value the rolling avg 3m I dont see any value.

Thanks!

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@Nun , You can try with date table like the example given below

Take line level Avg

Rolling 3 = CALCULATE(Average(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-3,MONTH))

 

Take sum and divide by month. Month level Avg

Rolling 3 = divide( CALCULATE(sum(Sales[Sales]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date]),-3,MONTH)) ,
CALCULATE(distinctCOUNT('Date'[Month Year]),DATESINPERIOD('Date'[Date],MAX('Date'[Date]),-3,MONTH), not(isblank((Sales[Sales])))))

 

View solution in original post

3 REPLIES 3
amitchandak
Super User
Super User

@Nun , You can try with date table like the example given below

Take line level Avg

Rolling 3 = CALCULATE(Average(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date ]),-3,MONTH))

 

Take sum and divide by month. Month level Avg

Rolling 3 = divide( CALCULATE(sum(Sales[Sales]),DATESINPERIOD('Date'[Date ],MAX('Date'[Date]),-3,MONTH)) ,
CALCULATE(distinctCOUNT('Date'[Month Year]),DATESINPERIOD('Date'[Date],MAX('Date'[Date]),-3,MONTH), not(isblank((Sales[Sales])))))

 

@amitchandak 

I solved the issue, R at the end of the value is due to the format. Power BI converted, automatically the value in Currency format, when the correct is Decimal number. 

Thanks a lot!

@amitchandak 

I created both the measure you suggested, but I get a value number ending with R. (for example 15879157.9867R) 

Thanks

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.