Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
FelipeGualberto
Frequent Visitor

SELECTEDVALUE doesn't work indirectly

Hello,

 

When I use this measure:

Sales Selected Year = CALCULATE(SUM(fSales[Value]), FILTER(ALL(dCalendar), dCalendar[Year] = SELECTEDVALUE(dCalendar[Year]))

 

It brings all sales from 2018 (considering I did the filter for only that year in a slicer visual). However, if I define:

Selected Year = SELECTEDVALUE(dCalendar[Year])

 

and then rewrite the expression as:

Sales Selected Year = CALCULATE(SUM(fSales[Value]), FILTER(ALL(dCalendar), dCalendar[Year] = [Selected Year]))

It brings the sales from all years from the dCalendar table, even tought I filtered just the year of 2018 in the page.

 

How does that happen? Can't I use a value returned in a measure resulted by SELECTEDVALUE function to pass as a filter?

 

*There is a date relationship between fSales and dCalendar.

 

Thanks.

1 ACCEPTED SOLUTION
Phil_Seamark
Employee
Employee

Welcome to the fun world of DAX filter context.  

 

The CALCULATE function is quite magical in the way it can create a new filter context for the expression to work with.

 

If you would like your calculation to work the way you want, please try this.

 

Sales Selected Year = 
VAR x = [Selected Year]
RETURN 
    CALCULATE(
        SUM(fSales[Value]), 
        FILTER(ALL(dCalendar), dCalendar[Year] = x )
        )

To learn more about DAX visit : aka.ms/practicalDAX

Proud to be a Datanaut!

View solution in original post

2 REPLIES 2
Phil_Seamark
Employee
Employee

Welcome to the fun world of DAX filter context.  

 

The CALCULATE function is quite magical in the way it can create a new filter context for the expression to work with.

 

If you would like your calculation to work the way you want, please try this.

 

Sales Selected Year = 
VAR x = [Selected Year]
RETURN 
    CALCULATE(
        SUM(fSales[Value]), 
        FILTER(ALL(dCalendar), dCalendar[Year] = x )
        )

To learn more about DAX visit : aka.ms/practicalDAX

Proud to be a Datanaut!

Thanks, Phil!

 

Strangely enough, the calculation is working now in both methods in another computer.

 

But it is very good to learn this technique, so now I know that sometimes I have to access a measure indirectly using a variable.

 

Have a good day!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.