Forum Discussion
Previous Years vs Current Year
Hi,
I want to compare current year's sales vs last year's sales. I am not 100% clear on how time intelligence features work.
I have a "Years" that has the year, year beginning date & year end date.
PreviousYearSales = CALCULATE(sum(InvoiceDetail[TotalSales$]), PREVIOUSYEAR(Years[EndofYear]))
I am filter sales out for 2015 and the "PreviousYearSales" come out blank?!
Can some one sum up the logic on how this works?
Thanks,
Steven
12 Replies
- KieranAdvocate II
Hi,
The following link looks very helpful to me.
If this does not answer the question for you please reply to this thread and I will try and provide a more clear answer by loading AdventureWorks into Power BI and providing example syntax.
Kind Regards,
Kieran.
- AnonymousNot applicable
Hi sshweky,
can you please post an example file of data so I can help you?
Thanks
- DominikPetriAdvocate V
Hi Steven,
is your dates column (Years[EndofYear]) in your date dimension? Is the relationship to your fact table set up correctly?
Do you have a date dimension? Is the table marked as date table?
Without any knowledge how you set up your data model, help is quite difficult. Have a look here for more info on how to use PREVIOUSYEAR() with CALCULATE:
DAX Function Reference: PREVIOUSYEAR Function (DAX)
Best regards,
Dominik Petri.
- kcantorCommunity Champion
I believe you might have better luck with DATEADD, -1, year) intead of previous year.
- michellemetzgerNew Member
Be carefull with DATEADD! It will only compare similar days between the two periods. For instance, in the first year you only have records on 200 days and the current you have records on 260 days. Using DATEADD will ignore the records that happened on days not present in the prior period.
Instead, use PARALLELPERIOD(). Same syntax as DATEADD without the nasty side effect.
- AnonymousNot applicable
Did you get it resolved? I have the same issue with blank....
- jblackshearAdvocate III
I had this problem as discussed in this thread https://community.powerbi.com/t5/Desktop/SAMEPERIODLASTYEAR-with-a-year-filter/td-p/91501
What's happening is that your filter on the year is also making the previous year data unavailable. You need to use FILTER within your calculation to release the filter on the previous year's data and make it available to the calculation.
This is the calculation that worked for me.
TotalRevenueThisPeriodLY = CALCULATE(SalesDataAggregated[TotalRevenue], FILTER(ALL(Dates), Dates[CalendarYear] = MAX(Dates[CalendarYear])-1), SAMEPERIODLASTYEAR(Dates[Date]))
I was using SAMEPERIODLASTYEAR, but you can use whatever you need.
The important point is the CALCULATE on the outside and the FILTER(ALL(Dates), ...) as the second argument on the inside.
FILTER(ALL(Dates)...) is removing your 2015 filter temporarily for this calculation, and expanding it to the entire Dates table so that it can access and calculate the previous year's value.
- anakoomHelper I
I have simalar issue if you can help me with this
- HikmerMicrosoft Employee
Can the same be accomplished when using a Multidimensional OLAP Cube?
- jblackshearAdvocate III
Hikmer wrote:Can the same be accomplished when using a Multidimensional OLAP Cube?
I haven't used OLAP cubes in Power BI yet, so I can't answer in detail.
The only things that are required, as far as I know, are data with a date, a Dates or Calendar table with no missing dates, and a data model that joins these two. If you load the cube data into your Power BI data model and model the relationship to the Calendar table, I expect it would be treated the same.