We've captured the moments from FabCon & SQLCon that everyone is talking about, and we are bringing them to the community, live and on-demand. Starts on April 14th. Register now
I want to add a column for percent change between Fiscal Years within each ITEM_DESCRIPTION. I have tried so many things and can't figure this out. I am getting so annoyed. I can't believe Power Query doesn't have a Previous Row function built in by!! Let alone a Percent Change function that allows you to choose the parameters.
**The Percent Change column in bold is what I am trying to achieve, I just put it there so you could see what I was trying to do.
In Power Query I used the Group By and Index functions to get the index to restart for each ITEM_DESCRIPTION, although I don't know if that was the right thing to do or even helpful.
| ITEM_DESCRIPTION | Fiscal Year | Index | Avg. Awarded PPU | Percent Change |
| CONCRETE FOOTING (MONOTUBE) | 2021 | 1 | 4429 | 0 |
| CONCRETE FOOTING (MONOTUBE) | 2022 | 2 | 4396 | -33 |
| CONCRETE FOOTING (MONOTUBE) | 2023 | 3 | 2209 | -2187 |
| CONCRETE FOOTING (MONOTUBE) | 2024 | 4 | 1270 | -939 |
| CONCRETE FOOTING (MONOTUBE) | 2025 | 5 | 1172 | -98 |
| CONCRETE FOOTING (OVERHEAD SHAFT) | 2022 | 2 | 1504 | 0 |
| CONCRETE FOOTING (OVERHEAD SHAFT) | 2023 | 3 | 1162 | -342 |
| CONCRETE FOOTING (OVERHEAD SHAFT) | 2024 | 4 | 1020 | -142 |
| CONCRETE FOOTING (OVERHEAD SHAFT) | 2025 | 5 | 2608 | 1588 |
| EXTRUDED PANEL | 2021 | 1 | 1193 | 0 |
| EXTRUDED PANEL | 2022 | 2 | 3714 | 2521 |
| EXTRUDED PANEL | 2023 | 3 | 2378 | -1336 |
| EXTRUDED PANEL | 2024 | 4 | 3903 | 1525 |
| EXTRUDED PANEL | 2025 | 5 | 171 | -3732 |
| MEDIAN BARRIER FOOTING (SHAFT) | 2023 | 3 | 2498 | 0 |
| MEDIAN BARRIER FOOTING (SHAFT) | 2024 | 4 | 841 | -1657 |
| MEDIAN BARRIER FOOTING (SHAFT) | 2025 | 5 | 3226 | 2385 |
| SIGN PANEL OVERLAY | 2021 | 1 | 4754 | 0 |
| SIGN PANEL OVERLAY | 2022 | 2 | 940 | -3814 |
| SIGN PANEL OVERLAY | 2023 | 3 | 3887 | 2947 |
| SIGN PANEL OVERLAY | 2024 | 4 | 2247 | -1640 |
| SIGN PANEL OVERLAY | 2025 | 5 | 2820 | 573 |
| STRUCTURAL STEEL - BRIDGE MOUNTED TRUSS | 2022 | 2 | 2955 | 0 |
| STRUCTURAL STEEL - BRIDGE MOUNTED TRUSS | 2023 | 3 | 4037 | 1082 |
| STRUCTURAL STEEL - BRIDGE MOUNTED TRUSS | 2024 | 4 | 3755 | -282 |
| STRUCTURAL STEEL - BRIDGE MOUNTED TRUSS | 2025 | 5 | 1619 | -2136 |
| STRUCTURAL STEEL - I-BEAM SIGN | 2022 | 2 | 2875 | 0 |
| STRUCTURAL STEEL - I-BEAM SIGN | 2023 | 3 | 4216 | 1341 |
| STRUCTURAL STEEL - I-BEAM SIGN | 2024 | 4 | 1219 | -2997 |
| STRUCTURAL STEEL - I-BEAM SIGN | 2025 | 5 | 920 | -299 |
| STRUCTURAL STEEL - MONOTUBE SIGN | 2021 | 1 | 3415 | 0 |
| STRUCTURAL STEEL - MONOTUBE SIGN | 2022 | 2 | 3731 | 316 |
| STRUCTURAL STEEL - MONOTUBE SIGN | 2023 | 3 | 3598 | -133 |
| STRUCTURAL STEEL - MONOTUBE SIGN | 2024 | 4 | 2313 | -1285 |
| STRUCTURAL STEEL - MONOTUBE SIGN | 2025 | 5 | 4129 | 1816 |
| STRUCTURAL STEEL - OVERHEAD SIGN POST | 2022 | 2 | 2862 | 0 |
| STRUCTURAL STEEL - OVERHEAD SIGN POST | 2023 | 3 | 672 | -2190 |
| STRUCTURAL STEEL - OVERHEAD SIGN POST | 2024 | 4 | 2238 | 1566 |
| STRUCTURAL STEEL - OVERHEAD SIGN POST | 2025 | 5 | 2590 | 352 |
| STRUCTURAL STEEL - OVERHEAD SIGN TRUSS | 2022 | 2 | 352 | 0 |
| STRUCTURAL STEEL - OVERHEAD SIGN TRUSS | 2023 | 3 | 4203 | 3851 |
| STRUCTURAL STEEL - OVERHEAD SIGN TRUSS | 2024 | 4 | 4610 | 407 |
| STRUCTURAL STEEL - OVERHEAD SIGN TRUSS | 2025 | 5 | 1933 | -2677 |
| STRUCTURAL STEEL - PANEL MOUNTING POST | 2022 | 2 | 4939 | 0 |
| STRUCTURAL STEEL - PANEL MOUNTING POST | 2023 | 3 | 3416 | -1523 |
| STRUCTURAL STEEL - PANEL MOUNTING POST | 2024 | 4 | 2892 | -524 |
| STRUCTURAL STEEL - PANEL MOUNTING POST | 2025 | 5 | 2418 | -474 |
Can anyone please help figure this out in the simplist way possible!!! Either in Power Query or with DAX outside of Power Query.
Solved! Go to Solution.
Hi,
This calculated column formula works
Column = Data[Avg. Awarded PPU]-COALESCE(LOOKUPVALUE(Data[Avg. Awarded PPU],Data[Fiscal Year],CALCULATE(MAX(Data[Fiscal Year]),FILTER(Data,Data[ITEM_DESCRIPTION]=EARLIER(Data[ITEM_DESCRIPTION])&&Data[Fiscal Year]<EARLIER(Data[Fiscal Year]))),Data[ITEM_DESCRIPTION],Data[ITEM_DESCRIPTION]),Data[Avg. Awarded PPU])
Hope this helps.
Hi,
This calculated column formula works
Column = Data[Avg. Awarded PPU]-COALESCE(LOOKUPVALUE(Data[Avg. Awarded PPU],Data[Fiscal Year],CALCULATE(MAX(Data[Fiscal Year]),FILTER(Data,Data[ITEM_DESCRIPTION]=EARLIER(Data[ITEM_DESCRIPTION])&&Data[Fiscal Year]<EARLIER(Data[Fiscal Year]))),Data[ITEM_DESCRIPTION],Data[ITEM_DESCRIPTION]),Data[Avg. Awarded PPU])
Hope this helps.
I broke it up into seperate columns to make it easier to calculate the percent change:
Previous Avg. =
COALESCE(LOOKUPVALUE(Data[Avg. Awarded PPU],Data[Fiscal Year],CALCULATE(MAX(Data[Fiscal Year]),FILTER(Data,Data[ITEM_DESCRIPTION]=EARLIER(Data[ITEM_DESCRIPTION])&&Data[Fiscal Year]<EARLIER(Data[Fiscal Year]))),Data[ITEM_DESCRIPTION],Data[ITEM_DESCRIPTION]),Data[Avg. Awarded PPU])
Change = Average - Previous Avg.
% Change = Change / Previous Avg.
Your code was helpful, thank you.
You are welcome.
Hey ACraig08,
I found a little tricky way to do this from power query, I hope I can explain myself good enough.
I hope this helps
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 53 | |
| 38 | |
| 33 | |
| 16 | |
| 16 |
| User | Count |
|---|---|
| 68 | |
| 63 | |
| 38 | |
| 34 | |
| 22 |