Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Solved! Go to Solution.
Hi @Anonymous
You can make a few modifications to your DAX formula, and it should work correctly for you. I have also compared the results, which you can see in the attached screenshot and Power BI file for verification.
3MonthRollingAverage =
VAR CurrentDate = MIN('175HPTractors'[DATESEEN])
VAR StartDate = DATE(YEAR(CurrentDate), MONTH(CurrentDate) - 2, 1) -- StartDate of previous month
VAR EndDate = EOMONTH(CurrentDate, 1) -- EndDate of next month
RETURN
CALCULATE(
AVERAGE('175HPTractors'[PRICE]),
FILTER(
ALL('175HPTractors'),
'175HPTractors'[DATESEEN] >= StartDate &&
'175HPTractors'[DATESEEN] <= EndDate
)
)
Best Regards,
Muhammad Yousaf
If this post helps, then please consider "Accept it as the solution" to help the other members find it more quickly.
Hi @Anonymous
You can use the DATESINPERIOD function, which returns the date of the period:
rolling average = CALCULATE(
AVERAGE('Table'[value]),
DATESINPERIOD(
'Table'[Date],
MAX('Table'[Date]),
-3,
MONTH
)
)
Best Regards,
Jayleny
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
@Anonymous
Revised 3-Month Rolling Average Measure
3MonthRollingAverage =
VAR CurrentDate = MIN('175HPTractors'[DATESEEN])
VAR StartDate = EOMONTH(CurrentDate, -1) + 1
VAR EndDate = EOMONTH(CurrentDate, 1)
RETURN
CALCULATE(
AVERAGE('175HPTractors'[PRICE]),
FILTER(
ALL('175HPTractors'[DATESEEN]),
'175HPTractors'[DATESEEN] >= StartDate &&
'175HPTractors'[DATESEEN] <= EndDate
)
)
*Ensure you have a proper Date table in your model and that all date-related calculations use it. Using a Date table helps avoid errors in time-based calculations.
💌 If this helped, a Kudos 👍 or Solution mark would be great! 🎉
Cheers,
Kedar
Connect on LinkedIn
Hi,
This DAX measure patern will work
Measure = averagex(datesbetween(calendar[date],edate(min(calendar[date]),-1),eomonth(max(calendar[date]),1)),'175HPTractors'[PRICE])
To your visual, drag Year and Month name from the Calendar Table.
If this does not work, then share the download link of the PBI file. Show the excpeted result there very clearly.
Hi @Anonymous
You can use the DATESINPERIOD function, which returns the date of the period:
rolling average = CALCULATE(
AVERAGE('Table'[value]),
DATESINPERIOD(
'Table'[Date],
MAX('Table'[Date]),
-3,
MONTH
)
)
Best Regards,
Jayleny
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @Anonymous
You can make a few modifications to your DAX formula, and it should work correctly for you. I have also compared the results, which you can see in the attached screenshot and Power BI file for verification.
3MonthRollingAverage =
VAR CurrentDate = MIN('175HPTractors'[DATESEEN])
VAR StartDate = DATE(YEAR(CurrentDate), MONTH(CurrentDate) - 2, 1) -- StartDate of previous month
VAR EndDate = EOMONTH(CurrentDate, 1) -- EndDate of next month
RETURN
CALCULATE(
AVERAGE('175HPTractors'[PRICE]),
FILTER(
ALL('175HPTractors'),
'175HPTractors'[DATESEEN] >= StartDate &&
'175HPTractors'[DATESEEN] <= EndDate
)
)
Best Regards,
Muhammad Yousaf
If this post helps, then please consider "Accept it as the solution" to help the other members find it more quickly.
Hi @Anonymous
I would assume that it would likely be your CurrentDate variable. It's hard to tell without some visual indicators but because the MIN or MAX of a value within a visual context could be deceiving and be applied per value shown, that's likely your culprit. Perhaps try to adjust the CurrentDate variable to something like this:
VAR CurrentDate = CALCULATE(MIN('175HPTractors'[DATESEEN].[Date]), ALLSELECTED())
If you could spare some time to build a sample input and output we could perhaps see the issue more clearly.
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 39 | |
| 37 | |
| 33 | |
| 32 | |
| 29 |
| User | Count |
|---|---|
| 133 | |
| 88 | |
| 85 | |
| 68 | |
| 64 |