Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreShape the future of the Fabric Community! Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions. Take survey.
Hi all,
I have tried to look for an answer to this question, but I keep coming up blank.
I need to reference a date in the future, based off of TODAY ( ). The date needs to be dynamic and I'd prefer not to just add x days.
I am trying to calculate the number of weeks between today and a future date within a calculation. See underlined below.
e.g. - DATEDIFF ( TODAY ( ) , (TODAY ( ) + 3 MONTHS) , WEEK )
I had thought I could do this with DATEADD, but it seems that this is looking for a column reference.
Ideally, I'd be able to make the integer in the + 3 MONTHS a variable, which can then be selected by the user through the use of a switch. I'm confident I'm able to do this part, but figured I'd include it, in case it alters any responses.
Solved! Go to Solution.
First, you should know that:
1. Calculation column/table not support dynamic changed based on filter or slicer.
2. Measure can be affected by filter/slicer, so you can use it to get dynamic summary result.
https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/
Then for your case, you could use
for example:
Step1:
There should be a date table in the report, if not, you could try this formula to create one.
Date = CALENDAR(TODAY()-365,TODAY()+365)
Step2:
Create a what if parameter
Step3:
If you just use (today+ days) as a variable, you could try this simple formula to create a measure
Measure 1 = DATEDIFF(TODAY(),TODAY()+[Parameter Value],WEEK)
Then just use slicer to select dynamic dates.
If you want use (today+months) as a variable, you need to use this formula to create a measure
Measure 2 = var _table= ADDCOLUMNS('Date',"_movedate",DATEADD('Date'[Date],[Parameter Value],DAY)) return
DATEDIFF(TODAY(),MAXX(FILTER(_table,[Date]=TODAY()),[_movedate]),WEEK)
here is sample pbix file, please try it.
Regards,
Lin
First, you should know that:
1. Calculation column/table not support dynamic changed based on filter or slicer.
2. Measure can be affected by filter/slicer, so you can use it to get dynamic summary result.
https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/
Then for your case, you could use
for example:
Step1:
There should be a date table in the report, if not, you could try this formula to create one.
Date = CALENDAR(TODAY()-365,TODAY()+365)
Step2:
Create a what if parameter
Step3:
If you just use (today+ days) as a variable, you could try this simple formula to create a measure
Measure 1 = DATEDIFF(TODAY(),TODAY()+[Parameter Value],WEEK)
Then just use slicer to select dynamic dates.
If you want use (today+months) as a variable, you need to use this formula to create a measure
Measure 2 = var _table= ADDCOLUMNS('Date',"_movedate",DATEADD('Date'[Date],[Parameter Value],DAY)) return
DATEDIFF(TODAY(),MAXX(FILTER(_table,[Date]=TODAY()),[_movedate]),WEEK)
here is sample pbix file, please try it.
Regards,
Lin
Hi Lin,
Thank you so much for your detailed reponse! I've been maunally writing my what-if tables all this time. Never knew that's what that button did...
Measure 2 is the real gold-mine for me, though.
Thanks!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Check out the November 2024 Power BI update to learn about new features.
User | Count |
---|---|
92 | |
89 | |
83 | |
77 | |
49 |
User | Count |
---|---|
146 | |
137 | |
109 | |
68 | |
55 |