Forum Discussion
How to shift date axis using what-if parameter?
- 7 years ago
Anonymous
Here is my edited version of your PBIX.
link- First I created a parameter table DateOffset using Modelling => New Parameter.
- Added a slicer for this parameter as in your screenshot
- I also marked your DimDate table as a date table. This is best to do when you are using time intelligence functions.
- I created measures called Primary & Indicator, just for the sake of consistency with your earlier screenshot.
Indicator uses DATEADD to shift the date filter by the negative of the DateOffset value selected. This gives the appearance of shifting Indicator to the right if a positive DateOffset is selected.
Primary = AVERAGE ( 'Value by Date 1'[Value] ) Indicator = CALCULATE ( AVERAGE ( 'Value by Date 2'[Value] ), DATEADD ( DimDate[Date], -[DateOffset Value], MONTH ) )Regards,
Owen
Anonymous
If you already have a measure and you want to shift the date context by a given number of months using a what-if parameter, the below pattern should do the trick.
The measure below evaluates your original measure with the date shifted by a given number of months.
I'll asuming you have
- Existing measure: [Existing Measure]
- Months to shift measure (value of what-if parameter): [Months To Shift Value]
Shifted Measure =
CALCULATE (
[Existing Measure],
DATEADD ( DimDate[Date], [Months To Shift Value], MONTH )
)If [Months to Shift Value] is positive (negative), this will return the value of [Existing Measure] in a later (earlier) month, so will appear to shift the line to the left (right), so you may want to add a negative sign in front of [Months To Shift Value].
Regards,
Owen
- Anonymous7 years agoNot applicable
Owen:
So once I do that, how do I create a relationship between the shifted measure and the DimDate? From what I can tell, you can't make relationships using a calculated field.
- OwenAuger7 years agoSuper User
Anonymous
I am assuming there are existing relationships between the Date columns of the Primary & Indicator tables and DimDate[Date].
My suggested measure doesn't require any new relationships to be created - it just shifts the filter on DimDate[Date] forward or backwards, for the purpose of that measure only. This relies on there already being a relationship between the Indicator table (table containing the values to be "shifted") and DimDate.
Did you have a working PBIX file that you could post a link to (similar to the screenshots you added to your original post), and I could create a sample measure within that model?
Otherwise, I could mock up a model to illustrate the technique.
Regards,
Owen
- Anonymous7 years agoNot applicable
Here's an example file:
http://s000.tinyupload.com/index.php?file_id=31701397748373985624
Thanks!
Hiram