Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowJuly 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. 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])
)
Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.
Check out the July 2026 Power BI update to learn about new features.
Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.
| User | Count |
|---|---|
| 30 | |
| 25 | |
| 23 | |
| 22 | |
| 13 |
| User | Count |
|---|---|
| 49 | |
| 32 | |
| 19 | |
| 17 | |
| 17 |