Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Page filters using calculation groups

Hi, I'm currently using a calculation group as a page filter so that all components are filtered by a 12-month period, using the end date of the date slicer (a 'Date Selection' table just used for parameter selection) that filters on the main date table ('Date') used by all the measures

 

VAR EndDate = EOMONTH ( MAX ( 'Date Selection'[Date] ), 0 ) 
VAR
StartDate = EDATE (EndDate, -12 )
RETURN CALCULATE
( SELECTEDMEASURE (), FILTER ( 'Date', 'Date'[Date] <= EndDate && 'Date'[Date] > StartDate ) )

 

Everything works well. However, I've noticed weird behaviour with some calculated measures. If I have a chart with dates on the x-axis, it will show only 12 months for everything except for measures that are manipulated in specific ways. For instance, if I create a measure with just a constant:


Test Measure = 5

And then plot it on a chart with time on the x-axis, it will show all dates instead of just 12 months. However, if I do something like this:

 

Test Measure = IF(ISBLANK(MAX('Date'[Date])), BLANK(), 5)
 
Then the visual will again restrict to the 12 month period on the x-axis. 
 
I have no idea why this is happening and I don't want to just modify measures like this with this IF() statement without fully understanding what's going on. 
 
Can someone help explain this?
 
Thanks

 

  • Items that are not connected to your data model (like your Test Measure)  will also not be impacted by filter context. That means if you include these items in your visuals you create cartesian products.

     

    As soon as you tie these items into your data model they will be subject to the filter context and join rules.

2 Replies

  • Items that are not connected to your data model (like your Test Measure)  will also not be impacted by filter context. That means if you include these items in your visuals you create cartesian products.

     

    As soon as you tie these items into your data model they will be subject to the filter context and join rules.

  • AlSnyder's avatar
    AlSnyder
    Frequent Visitor

       This is a simple relationship issue.
       A constant measure doesn't have a relationship to your date table.  Your IF statement creates a relationship to the date table by checking if the dates are blank and then applying the constant to dates that are not blank.
       You may also experience a similar result if you have other measures that produce scalar outputs that also do not have relationships with the date table.