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.
Dear reader,
I have a line chart that has data up untill the current month.
Using a YTD / YOY calculation I have a fixed % Change measure.
I want to use that [% Change YOY] measure to forecast the rest of the year, starting from my max [Month].
My line chart has a cumulative [Sales] total of:
$ 100 in May.. What I expect:
June = $100 * [% Change YOY]
Juli = June * [% Change YOY]
Aug = Juli * [% Change YOY]
etc.
Could you help me write this measure? 🙂
Kind regards,
Daniël
Solved! Go to Solution.
Hi @Foxxon28 ,
I create a table and a measure as you mentioned.
% Change YOY = AVERAGE('Table'[Change YOY])
Then I create a measure and here is the DAX code.
Measure =
VAR MaxMonth = MAX('Table'[Month])
VAR ChangeYOY = [% Change YOY]
VAR BaseSales = CALCULATE(SUM('Table'[Change YOY]), 'Table'[Month] = MaxMonth)
RETURN
SUMX(
ADDCOLUMNS(
CALENDAR(MaxMonth, DATE(YEAR(MaxMonth), 12, 31)),
"ForecastedSales",
BaseSales * POWER(1 + ChangeYOY, MONTH([Date]) - MONTH(MaxMonth))
),
[ForecastedSales]
)
Best Regards
Yilong Zhou
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @Foxxon28 ,
I create a table and a measure as you mentioned.
% Change YOY = AVERAGE('Table'[Change YOY])
Then I create a measure and here is the DAX code.
Measure =
VAR MaxMonth = MAX('Table'[Month])
VAR ChangeYOY = [% Change YOY]
VAR BaseSales = CALCULATE(SUM('Table'[Change YOY]), 'Table'[Month] = MaxMonth)
RETURN
SUMX(
ADDCOLUMNS(
CALENDAR(MaxMonth, DATE(YEAR(MaxMonth), 12, 31)),
"ForecastedSales",
BaseSales * POWER(1 + ChangeYOY, MONTH([Date]) - MONTH(MaxMonth))
),
[ForecastedSales]
)
Best Regards
Yilong Zhou
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi,
Assuming you already have the [% Change YOY] measure, if not, you can create it with something like this:
% Change YOY =
DIVIDE(
SUM('Sales'[Sales]) - CALCULATE(SUM('Sales'[Sales]), SAMEPERIODLASTYEAR('Date'[Date])),
CALCULATE(SUM('Sales'[Sales]), SAMEPERIODLASTYEAR('Date'[Date]))
)
Step 2: Create the Forecast Measure:
Forecasted Sales =
VAR MaxMonth = MAX('Date'[Month])
VAR YoYChange = [% Change YOY]
VAR CumulativeSales = CALCULATE(SUM('Sales'[Sales]), 'Date'[Month] <= MaxMonth)
VAR ForecastSales =
GENERATE(
FILTER(
ALL('Date'),
'Date'[Month] > MaxMonth && 'Date'[Year] = YEAR(TODAY())
),
VAR PreviousMonthSales =
IF(
'Date'[Month] = MaxMonth + 1,
CumulativeSales,
CALCULATE(SUM('Sales'[Sales]), 'Date'[Month] = EARLIER('Date'[Month]) - 1) * (1 + YoYChange)
)
RETURN
SELECTCOLUMNS(
'Date',
"Month", 'Date'[Month],
"Forecasted Sales", PreviousMonthSales * (1 + YoYChange)
)
)
RETURN
IF(
'Date'[Month] <= MaxMonth,
CumulativeSales,
SUMX(
FILTER(ForecastSales, [Month] <= 'Date'[Month]),
[Forecasted Sales]
)
)
Finally: Add the Forecasted Sales measure to your line chart & make sure your date table has a continuous range covering the entire year.
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
26 | |
10 | |
10 | |
9 | |
6 |