Forum Discussion
Trailing 12 months DAX
Hi,
I have a Date column that is rolled up to the end of the quarter (Date) as per the attached image and the corresponding Fiscal Year ( Fiscal Qtr ).
I am struggling with getting a trailing 12 months (or 4 quarters) of the Sales column for the last 4 qtrs calculated at each corresponding quarters.
Trailing 12 Months Expected Output - is what i am looking for.
I tried this DAX Statement
Any help is much appreciated.
BItoken , You formula seems correct, you need use MAx of date. End of month will not apply in your case
Trailing 12 Months = CALCULATE(SUM(Table[Sales]), DATESINPERIOD(Date[Date],Max(Date[Date]),-4,QUARTER))
or
Trailing 12 Months = CALCULATE(SUM(Table[Sales]), DATESINPERIOD(Date[Date],Max(Table[Date]),-4,QUARTER))
Always use date table. As solution might work without that, but will create issue in future.
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/
Appreciate your Kudos.- Anonymous5 years ago
Hi BItoken ,
I created a sample pbix file for you, please check if that is what you want.
1. Create a calculated column to order by the data base on the fiscal quarter
Rank = RANKX ( 'Sales', 'Sales'[Fiscal Qtr],, ASC, DENSE )2. Create a measure to get the rolling 4 quaraters sales
Trailing 12 Months = VAR _index = MAX ( 'Sales'[Rank] ) VAR _date = MAX ( 'Sales'[Date] ) RETURN CALCULATE ( SUM ( 'Sales'[Sales] ), FILTER ( ALL ( 'Sales' ), 'Sales'[Rank] >= _index - 3 && 'Sales'[Rank] <= _index && 'Sales'[Date] <= _date ) )Best Regards
Rena
9 Replies
- FrankATCommunity Champion
Hi BItoken
this may be a solution. I added the column Fiscal Year with Power Query and used it in the measure (see attached pbix file):
Trailing 12 Month = CALCULATE( [Sum of Sales], FILTER( ALLEXCEPT( 'Table', 'Table'[Fiscal Year] ), 'Table'[Fiscal Qtr] <= MAX('Table'[Fiscal Qtr]) ) )With kind regards from the town where the legend of the 'Pied Piper of Hamelin' is at home
FrankAT (Proud to be a Datanaut) - amitchandakSuper User
BItoken , You formula seems correct, you need use MAx of date. End of month will not apply in your case
Trailing 12 Months = CALCULATE(SUM(Table[Sales]), DATESINPERIOD(Date[Date],Max(Date[Date]),-4,QUARTER))
or
Trailing 12 Months = CALCULATE(SUM(Table[Sales]), DATESINPERIOD(Date[Date],Max(Table[Date]),-4,QUARTER))
Always use date table. As solution might work without that, but will create issue in future.
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/
Appreciate your Kudos.- BItokenHelper III
Hi amitchandak ,
I used this DAX function.
Although, i get the same values of Sales.
My Fiscal Qtr and Date and Sales are all in the same table.
- Ashish_MathurSuper User
Hi,
Share the link from where i can download your PBI file.
- BItokenHelper III
This solution worked. Thanks amitchandak
- Ray_MindsSolution Supplier
Hi BItoken
Create Measure # 12 Month Rollback =CALCULATE((SUM('Fact Table '[Amount]),DATESINPERIOD('Dim Date'[Date],MAX ('Dim Date '[Date]), -12, Month))
If your requirement is solved, please make THIS ANSWER a SOLUTION ✔️ and help other users find the solution quickly. Please hit the LIKE 👍 button if this comment helps you.