Forum Discussion
Filter visual by measure not working
- 6 years ago
Right I now understand what your issue is. You can fix that by creating a TRUE/FALSE column in your Calendar1 table like this:
IsLastQuarter = VAR _today = FILTER(ALL(Calendar1), Calendar1[Date] = TODAY()) VAR prevQ = CALCULATETABLE(PREVIOUSQUARTER(Calendar1[Date]), _today) RETURN IF(Calendar1[Date] IN prevQ, TRUE, FALSE)Then filter your page on the column IsLastQuarter and then your datetable is always filtered to the last quarter.
On your other question; PREVIOUSQUARTER() takes a table as input and TODAY() returns a datetime value and thus is not valid. A filtered table derived from Calendar1 is a valid input. Hope this helps you out!
Kind regards
Djerro123
-------------------------------
If this answered your question, please mark it as the Solution. This also helps others to find what they are looking for.
Keep those thumbs up coming! 🙂
Hi Thanks for this and I knew this could be achieveable directly in measure but imagine if you have multiple numeric field in your table. Is it not good that instead of creating a lastquarter measure for all, just create a 'measure filters and filter and keep that on the page filter. This way if business comes and ask to show last month or something else then we only need to change the measure filter.
I recall I used to do this in Tableau and it's very easy to filter dimension with calculated measure value instead of a an static values
Anyways, thanks for the below.
LastQ =
VAR _today = FILTER(VALUES(Calendar1[Date]), Calendar1[Date] = TODAY())
RETURN
CALCULATE(SUM('Customer Score'[CustomerScore]), PREVIOUSQUARTER(_today))Just wanted to ask onething. Why you need to filter calendar table with Today() ? Can't we directly pass Today() in PreviousQuarter function?
Right I now understand what your issue is. You can fix that by creating a TRUE/FALSE column in your Calendar1 table like this:
IsLastQuarter =
VAR _today = FILTER(ALL(Calendar1), Calendar1[Date] = TODAY())
VAR prevQ = CALCULATETABLE(PREVIOUSQUARTER(Calendar1[Date]), _today)
RETURN
IF(Calendar1[Date] IN prevQ, TRUE, FALSE)Then filter your page on the column IsLastQuarter and then your datetable is always filtered to the last quarter.
On your other question; PREVIOUSQUARTER() takes a table as input and TODAY() returns a datetime value and thus is not valid. A filtered table derived from Calendar1 is a valid input. Hope this helps you out!
Kind regards
Djerro123
-------------------------------
If this answered your question, please mark it as the Solution. This also helps others to find what they are looking for.
Keep those thumbs up coming! 🙂
- socksinbox6 years ago
Helper I
Thanks JarroVGIT. I am trying to create this measure but it's not working- give me below error.
https://i.imgur.com/GPiGDPn.png
Appreciate if you can do in the test file I shared
- JarroVGIT6 years ago
Resident Rockstar
Sorry if this wasn't clear, but the dax is a calculated column in the Calendar1 table, not a measure.
I created it using your file, but had to replay today() with today()-6 because today's date is not in your Calendar1 table but in a reallife scenario it would be. - socksinbox6 years ago
Helper I
Oh. I got that. So there's no way to filter by measure on the visual or page.
Thanks alot for helping me.
- JarroVGIT6 years ago
Resident Rockstar
But why do you need it to be a measure? Using a column is a perfect valid case in your use case and requirements and you can use that to filter on a page level?
Anyway, please mark the solution so others can find answers to the same question more easily:)
Thanks! - socksinbox6 years ago
Helper I
Measure is more efficent in terms of column storage and I just wanted to replicate what I could able to do in Tableau.
Anyways, I have already marked the previous post as accepted solution.
Thanks a lot dear for helping me out