Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Sign up nowGet Fabric certified for FREE! Don't miss your chance! Learn more
Hello
I want to make a sliding average as I gave the example below, I created the ratios with a measure
| Dönem | Oran % | Ortalama | Formül |
| 2025/03 | 11,04% | 9,06% | =ORTALAMA($K5:K$13) |
| 2024/12 | 4,30% | 8,81% | =ORTALAMA($K6:K$13) |
| 2024/09 | 19,58% | 9,45% | =ORTALAMA($K7:K$13) |
| 2024/06 | 24,10% | 7,76% | =ORTALAMA($K8:K$13) |
| 2024/03 | 13,08% | 4,50% | =ORTALAMA($K9:K$13) |
| 2023/12 | 9,11% | 2,35% | =ORTALAMA($K10:K$13) |
| 2023/09 | 25,37% | 0,10% | =ORTALAMA($K11:K$13) |
| 2023/06 | -22,78% | -12,54% | =ORTALAMA($K12:K$13) |
| 2023/03 | -2,30% | -2,30% | =ORTALAMA($K13:K$13) |
Solved! Go to Solution.
Hey @Mekist ,
The goal is to make Sliding Average with DAX (Matching Excel’s =AVERAGE(Kx:K13) Pattern). You are creating a sliding (or rolling) average in DAX where the average should be calculated from the current row down to the last row.
SlidingAverage :=
VAR CurrentPeriod = 'YourTable'[Dönem]
RETURN
AVERAGEX(
FILTER(
ALL('YourTable'),
'YourTable'[Dönem] >= CurrentPeriod
),
'YourTable'[Oran]
)Make sure Dönem is sorted descendingly (newest to oldest), matching how your Excel table flows.
If Oran is text (e.g., % formatted string), first convert it to a number in Power BI or Power Query.
Use ALL('YourTable') to avoid existing filter context interfering with the sliding window.
If you found this solution helpful, please consider accepting it and giving it a kudos (Like) it’s greatly appreciated and helps others find the solution more easily.
Best Regards,
Nasif Azam
Hey @Mekist ,
The goal is to make Sliding Average with DAX (Matching Excel’s =AVERAGE(Kx:K13) Pattern). You are creating a sliding (or rolling) average in DAX where the average should be calculated from the current row down to the last row.
SlidingAverage :=
VAR CurrentPeriod = 'YourTable'[Dönem]
RETURN
AVERAGEX(
FILTER(
ALL('YourTable'),
'YourTable'[Dönem] >= CurrentPeriod
),
'YourTable'[Oran]
)Make sure Dönem is sorted descendingly (newest to oldest), matching how your Excel table flows.
If Oran is text (e.g., % formatted string), first convert it to a number in Power BI or Power Query.
Use ALL('YourTable') to avoid existing filter context interfering with the sliding window.
If you found this solution helpful, please consider accepting it and giving it a kudos (Like) it’s greatly appreciated and helps others find the solution more easily.
Best Regards,
Nasif Azam
Hello @Nasif_Azam
Thank you, my problem has been solved in general Without data in the last two periods, he did not make calculations As in the example, when there is no vieri, it does not calculate in all periods
| Dönem | Oran % | Ortalama |
| 2025/03 | 11,04% | |
| 2024/12 | 4,30% | |
| 2024/09 | 19,58% | |
| 2024/06 | 24,10% | |
| 2024/03 | 13,08% | |
| 2023/12 | 9,11% | |
| 2023/09 | 25,37% | |
| 2023/06 | ||
| 2023/03 |
I have excluded those who do not have period data as follows, I wanted to share it in case there is a need
Satış Büyüme (Kümüle) Ortalama =
VAR GuncelDonem = MAX('Dönem'[Dönem])
VAR Donemler =
FILTER(
ALL('Dönem'[Dönem]),
'Dönem'[Dönem] <= GuncelDonem
)
RETURN
AVERAGEX(
Donemler,
CALCULATE([Satış Değişim-Kümüle])
)
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 61 | |
| 58 | |
| 42 | |
| 21 | |
| 18 |
| User | Count |
|---|---|
| 122 | |
| 118 | |
| 38 | |
| 36 | |
| 29 |