Forum Discussion
How to return a Tableobject using IF DAX-Function
Hello I'm trying to get a Tableobject back from an IF-Function, to use it in a Slicer Visual.
I have created a DateTable with one Column of Dates. Now I want to get only specifiy Date Ranges based on my IF-Function.
If I'm going to provide only the DATESINPERIOD Function without IF it works, but I want to have a logic based on todays date.
Can somebody say what I'm missing?
I get always this Error: The expression specified in the query is not a valid table expression.
Thanks in advance to the community 🙂
Yep. IF won't return tables, unfortunately.
v_rome Here's one way to work around that limitation for your specific case:
Check1 = VAR lastDayOfMonth = EOMONTH ( TODAY (), 0 ) VAR shift = IF ( lastDayOfMonth - 7 <= TODAY (), 0, -1 ) VAR filter1 = DATESINPERIOD ( DateTable[Date], EOMONTH ( TODAY (), shift ), -1, YEAR ) RETURN filter1
4 Replies
- parry2kSuper User
v_rome amitchandak you cannot return the table using the IF Function. The best approach would be to calculate the start and end date based on your if condition and then in the return using these variables.
✨ Follow us on LinkedIn
Learn about conditional formatting at Microsoft Reactor
My latest blog post The Power of Using Calculation Groups with Inactive Relationships (Part 1) (perytus.com) I would ❤ Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos to whoever helped to solve your problem. It is a token of appreciation!
⚡ Visit us at https://perytus.com, your one-stop-shop for Power BI-related projects/training/consultancy.⚡
- AlexisOlsonSuper User
Yep. IF won't return tables, unfortunately.
v_rome Here's one way to work around that limitation for your specific case:
Check1 = VAR lastDayOfMonth = EOMONTH ( TODAY (), 0 ) VAR shift = IF ( lastDayOfMonth - 7 <= TODAY (), 0, -1 ) VAR filter1 = DATESINPERIOD ( DateTable[Date], EOMONTH ( TODAY (), shift ), -1, YEAR ) RETURN filter1
- amitchandakSuper User