Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
dyabes
Helper I
Helper I

DATEADD: Dynamic value for the interval parameter

I am trying to compare the current value of a measure against the previous period using DATEADD. 

 CALCULATE(
     [Sessions],
     DATEADD( Dates[Date], -30 , DAY )
)

 

I do not want the interval to be fixed at -30 rather dynamic based on the selected value of the Date filter.

var _firstdate = FIRSTDATE( Dates[Date] )
var _lastdate = LASTDATE( Dates[Date] )
var _datediff = DATEDIFF(   _lastdate, _firstdate, DAY )
return
CALCULATE(
     [Sessions],
     DATEADD( Dates[Date], _datediff , DAY ) )

 

Unfortunately the above DAX does not work. The _datediff returns the correct value but when applied within the CALCULATE it appears to be returning a value zero. Can someone explain why this happens and how to resolve it?

 

1 ACCEPTED SOLUTION
AllisonKennedy
Super User
Super User

@dyabes You need to calculate the interval for ALLSELECTED dates, otherwise it will use the context of the visual you're calculating within. 

 

This measure works: 

 

Previous Period Sales =
VAR Int = CALCULATE(DATEDIFF(MAX(Dates[Date]), MIN(Dates[Date]), DAY), ALLSELECTED(Dates))
RETURN
CALCULATE([Total Sales], DATEADD(Dates[Date], Int, DAY))
 
Though be careful to name the visuals, etc well as it's confusing what it's showing when random periods are selected, might be best used with a relative date slicer only???

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

View solution in original post

3 REPLIES 3
AllisonKennedy
Super User
Super User

@dyabes You need to calculate the interval for ALLSELECTED dates, otherwise it will use the context of the visual you're calculating within. 

 

This measure works: 

 

Previous Period Sales =
VAR Int = CALCULATE(DATEDIFF(MAX(Dates[Date]), MIN(Dates[Date]), DAY), ALLSELECTED(Dates))
RETURN
CALCULATE([Total Sales], DATEADD(Dates[Date], Int, DAY))
 
Though be careful to name the visuals, etc well as it's confusing what it's showing when random periods are selected, might be best used with a relative date slicer only???

Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Thank you so much @AllisonKennedy! This worked brilliantly. 

You're very welcome. Glad it worked.


Please @mention me in your reply if you want a response.

Copying DAX from this post? Click here for a hack to quickly replace it with your own table names

Has this post solved your problem? Please Accept as Solution so that others can find it quickly and to let the community know your problem has been solved.
If you found this post helpful, please give Kudos C

I work as a Microsoft trainer and consultant, specialising in Power BI and Power Query.
www.excelwithallison.com

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.