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
Hi, I got the moving average working as below:
MovingAverageCost = CALCULATE (
AVERAGE ('Cost Table'[Cost]),
DATESINPERIOD (
'Cost Table'[Month],
LASTDATE ( 'Cost Table'[Month] ),
-3,
MONTH
)
)
But each time i take out certain months with a filter, i need the moving average to ignore those months taken out and calculate a new average based on the filtered months. Is there something i can add to the code to do that? To make it easier its always consecutive, like for [January, February, March, April], if i filter out [January, February], [March]'s moving average should be equal to its average.
Solved! Go to Solution.
Hi @spoony
How do you want your data to be used, in a matrix or a Visual?
Reason is that this would work below, but I am thinking it might not be exactly what you are looking to achieve.
You already have got your Average Measure [Avg]
Then you create a new measure which will count the months selected.
Month Count = CALCULATE(
DISTINCTCOUNT('Cost Table'[Month] ),
ALLSELECTED('Cost Table'[Month] )
)And then if you create this final measure it will then have the total correct, but if in a matrix each line will appear to be incorrect.
Moving Average = DIVIDE([Avg],[Month Count])
Hi @spoony
This is a total guess, but it might work.
What about if you modify your measure to the following:
MovingAverageCost = CALCULATE (
AVERAGE ('Cost Table'[Cost]),
DATESINPERIOD (
ALLSELECTED('Cost Table'[Month]),
LASTDATE ( ALLSELECTED('Cost Table'[Month] )),
-3,
MONTH
)
)
Hi @GilbertQ,
It produces an error: Datesbetween and Datesinperiod functions are only accpeting date column reference as a first arguement.
Hi @spoony
How do you want your data to be used, in a matrix or a Visual?
Reason is that this would work below, but I am thinking it might not be exactly what you are looking to achieve.
You already have got your Average Measure [Avg]
Then you create a new measure which will count the months selected.
Month Count = CALCULATE(
DISTINCTCOUNT('Cost Table'[Month] ),
ALLSELECTED('Cost Table'[Month] )
)And then if you create this final measure it will then have the total correct, but if in a matrix each line will appear to be incorrect.
Moving Average = DIVIDE([Avg],[Month Count])
Hi @GilbertQ, ya it needs to be on a graph and matrix. I'll test it out anyway.
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 41 | |
| 38 | |
| 36 | |
| 30 | |
| 28 |
| User | Count |
|---|---|
| 128 | |
| 88 | |
| 79 | |
| 67 | |
| 62 |