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

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes! Register now.

Reply
FreemanZ
Super User
Super User

How to get the moving average of the biggest two among many?

As mentioned, for the sample data below:
ReportDateSales
1/1/202261
1/2/202286
1/3/202264
1/4/202269
1/5/202262
1/6/202296
1/7/202264
1/8/202260
1/9/202271
1/10/202279
1/11/202269
1/12/202273

 

 

The requirement is to get the average sales of the biggest two month in the last six months. 

For example, for 1/12/2022, the target value shall be 76  or (79+73)/2,  for 1/11/2022, it shall be 87.5 or (96+79)/2. 
 
I am struggling on how to filter the 2 out of the 6. 
As it is part of other calculation, realization with pure DAX code is welcome. 
1 ACCEPTED SOLUTION
Jihwan_Kim
Super User
Super User

Hi,

In case you do not have a calendar table, please try below.

Please check the below picture and the attached pbix file.

 

Jihwan_Kim_0-1667275116320.png

 

 

Expected result measure: =
VAR _currentmonthend =
    EOMONTH ( MAX ( Data[ReportDate] ), 0 )
VAR _sixmonthboforestart =
    EOMONTH ( MAX ( Data[ReportDate] ), -6 ) + 1
VAR _sixmonthsperiodtable =
    CALCULATETABLE (
        Data,
        Data[ReportDate] >= _sixmonthboforestart,
        Data[ReportDate] <= _currentmonthend
    )
VAR _biggesttwovaluesavg =
    AVERAGEX ( TOPN ( 2, _sixmonthsperiodtable, Data[Sales], DESC ), Data[Sales] )
RETURN
    _biggesttwovaluesavg

If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Click here to visit my LinkedIn page

Click here to schedule a short Teams meeting to discuss your question.

View solution in original post

2 REPLIES 2
FreemanZ
Super User
Super User

It works well. Thank you Jihwan.

Jihwan_Kim
Super User
Super User

Hi,

In case you do not have a calendar table, please try below.

Please check the below picture and the attached pbix file.

 

Jihwan_Kim_0-1667275116320.png

 

 

Expected result measure: =
VAR _currentmonthend =
    EOMONTH ( MAX ( Data[ReportDate] ), 0 )
VAR _sixmonthboforestart =
    EOMONTH ( MAX ( Data[ReportDate] ), -6 ) + 1
VAR _sixmonthsperiodtable =
    CALCULATETABLE (
        Data,
        Data[ReportDate] >= _sixmonthboforestart,
        Data[ReportDate] <= _currentmonthend
    )
VAR _biggesttwovaluesavg =
    AVERAGEX ( TOPN ( 2, _sixmonthsperiodtable, Data[Sales], DESC ), Data[Sales] )
RETURN
    _biggesttwovaluesavg

If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Click here to visit my LinkedIn page

Click here to schedule a short Teams meeting to discuss your question.

Helpful resources

Announcements
September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.