Forum Discussion
Difference from previous period (in YYYYMM format)
Hello,
I have a column named PERIOD (in YYYYMM) format in both the fact and calendar tables.
Is there a way to calculate the difference between current period and previous period in the pivot?
Please see the screenshot below:
Difference between 201902 and 201901 should be 156,276 - 258,244 = (101968) and so on. I want to show the actual values and difference in columns (pivoted format).
Thanks in advance!
chandakaushik , better is that you create a date , as suggested by lbendlin, and use a date calendar.
And create measures like this
MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date])) last MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH))) last month Sales = CALCULATE(SUM(Sales[Sales Amount]),previousmonth('Date'[Date])) last MTD (complete) Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,MONTH)))) previous month value = CALCULATE(sum(''Table''[total hours value]),previousmonth('Date'[Date])) diff = [MTD Sales]-[last MTD Sales] diff % = divide([MTD Sales]-[last MTD Sales],[last MTD Sales])The second way is to have month year table (Your month are sortable) and create a rank. You need to have a separate table.
Month Rank = RANKX(all('Date'),'Date'[Month],,ASC,Dense) This Month = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank]))) Last Month = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank])-1))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
Appreciate your Kudos.
3 Replies
- lbendlin
Super User
Convert the period to a fake date
DATE(YYYY,MM,1)
and then tie that date into the calendar table. From there you can then use the regular time intelligence functions.
- amitchandak
Super User
chandakaushik , better is that you create a date , as suggested by lbendlin, and use a date calendar.
And create measures like this
MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date])) last MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH))) last month Sales = CALCULATE(SUM(Sales[Sales Amount]),previousmonth('Date'[Date])) last MTD (complete) Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,MONTH)))) previous month value = CALCULATE(sum(''Table''[total hours value]),previousmonth('Date'[Date])) diff = [MTD Sales]-[last MTD Sales] diff % = divide([MTD Sales]-[last MTD Sales],[last MTD Sales])The second way is to have month year table (Your month are sortable) and create a rank. You need to have a separate table.
Month Rank = RANKX(all('Date'),'Date'[Month],,ASC,Dense) This Month = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank]))) Last Month = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Month Rank]=max('Date'[Month Rank])-1))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
Appreciate your Kudos.- chandakaushik
Helper I
Thank you guys, amitchandak lbendlin ! Appreciate your guidence and help!