Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hello!
First time poster, long time follower.
I am having a mind blank and for the life of me I cannot figure out the DAX formula to create this end result as shown in grey on the below screenshot.
These are mock numbers I have prepared in excel to show my desired result. In Power BI I already have two matrix tables showing the sales, as well as the Annual Growth % which I created using DAX.
But what I am really after is to show the cumulative growth trend as per the final table and chart, where the base value will always be 1 (selected from a year slicer) so that all regions begin from the same point and show the annual trend.
Any help would be much appreciated. Thank you!
Solved! Go to Solution.
Hi, please check the below.
All measures are in the sample pbix file's link down below.
Annual growth (cumulative index) : =
VAR currentperiodindex =
MAX ( Period[Index] )
VAR regiontable =
ADDCOLUMNS (
CROSSJOIN ( VALUES ( Region[Region] ), ALL ( Period[Index], Period[Period] ) ),
"@growth",
CALCULATE (
VAR currentsales = [Sales :]
VAR currentperiod =
MAX ( Period[Index] )
VAR previoussales =
CALCULATE (
[Sales :],
FILTER ( ALL ( Period ), Period[Index] = currentperiod - 1 )
)
VAR growth =
DIVIDE ( currentsales - previoussales, previoussales )
RETURN
IF ( SELECTEDVALUE ( Period[Index] ) = 1, 1, growth )
)
)
RETURN
SUMX ( FILTER ( regiontable, Period[Index] <= currentperiodindex ), [@growth] )
Wow, what a work of art. Worked a treat. Thank you!
Hi, please check the below.
All measures are in the sample pbix file's link down below.
Annual growth (cumulative index) : =
VAR currentperiodindex =
MAX ( Period[Index] )
VAR regiontable =
ADDCOLUMNS (
CROSSJOIN ( VALUES ( Region[Region] ), ALL ( Period[Index], Period[Period] ) ),
"@growth",
CALCULATE (
VAR currentsales = [Sales :]
VAR currentperiod =
MAX ( Period[Index] )
VAR previoussales =
CALCULATE (
[Sales :],
FILTER ( ALL ( Period ), Period[Index] = currentperiod - 1 )
)
VAR growth =
DIVIDE ( currentsales - previoussales, previoussales )
RETURN
IF ( SELECTEDVALUE ( Period[Index] ) = 1, 1, growth )
)
)
RETURN
SUMX ( FILTER ( regiontable, Period[Index] <= currentperiodindex ), [@growth] )
Check out the July 2025 Power BI update to learn about new features.
User | Count |
---|---|
24 | |
10 | |
6 | |
6 | |
6 |
User | Count |
---|---|
29 | |
11 | |
11 | |
10 | |
6 |