Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
Hello! I am creating a matrix that consists of years (along the columns) and different values (along the rows - these also pull from different tables).
I am wondering if there is a way to create a percent change column from year to year for all of the different values. I am finding DAX to do this with one type of value, but I would like it to just calculate for each specific year, for all of the values (example: 2015 vs 2014, 2016 vs 2015, and so on).
This is what I am working with so far:
Ideally, I would like the percent change between each year column.
Thanks in advance! 🙂
Thank you both for possible options. I am wondering if these of these would work with multiple values? In the snapshot included in the post, I am actually pulling the values from 3 different tables, all of which are joined to my date table. I'm wondering if what I am trying to accomplish here is even possible (I am thinking kinda of like excel, where I could have a percent change column in between each year, for each of the values on the left).
Thanks! 🙂
Hi @nrenaud ,
The formulas that amitchandak suggests should work fine. You also could try DATEADD and SAMEPERIODLASTYEAR function to calculate the values of last year if you are using calendar table.
Measure =
var thisYear = CALCULATE(SUM('Table'[Sales]))
var lastYear = CALCULATE(SUM('Table'[Sales]),DATEADD('Date'[Date],-1,YEAR))
return
DIVIDE(thisYear-lastYear,lastYear)Measure 2_SAMEPERIODLASTYEAR =
var thisYear = CALCULATE(SUM('Table'[Sales]))
var lastYear = CALCULATE(SUM('Table'[Sales]),SAMEPERIODLASTYEAR('Date'[Date]))
return
DIVIDE(thisYear-lastYear,lastYear)
https://www.youtube.com/watch?v=80i8rLQtO3o
https://www.youtube.com/watch?v=6vJIAJNTdG0
@nrenaud ,
Try with a separate date/year table
This Year = CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]=max('Date'[Year])))
Last Year = CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]=max('Date'[Year])-1))
diff = [This Year]-[Last Year]
diff %= divide([This Year]-[Last Year],[Last Year])
To get the best of the time intelligence function. Make sure you have a date calendar and it has been marked as the date in model view. Also, join it with the date column of your fact/s. Refer :
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/
See if my webinar on Time Intelligence can help: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...
Appreciate your Kudos.
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
Check out the November 2025 Power BI update to learn about new features.
| User | Count |
|---|---|
| 65 | |
| 46 | |
| 43 | |
| 26 | |
| 19 |
| User | Count |
|---|---|
| 198 | |
| 126 | |
| 102 | |
| 68 | |
| 51 |