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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
avachris
Frequent Visitor

Change Filter with and if statement

Hi I would like to create a measure where the filter context changes based upon what is the selected value. 

I basically want to apply a filter for certain rows in another table and remove the filter for rows where the selectedvalue is not "x"

for example:

 

example measure=

var filtervalues = if selectedvalue="x" then treatas({"filter1","filter2"},dimtable[dim]) else all(dimtable))

 

return calculate ([measure],filtervalues)

 

I was having an issue with the if statement returning a table and I'm not sure how to get around this. 

1 ACCEPTED SOLUTION

Hi @avachris 

 

Both IF and SWITCH are intended to return scalar results and don't support table results.

 

As a workaround, you can return different scalar expressions which contain different filters according to the conditions. This is supported. For example, 

Example measure =
IF (
    SELECTEDVALUE ( 'table'[column] ) = "x",
    CALCULATE ( [measure], TREATAS ( { "filter1", "filter2" }, dimtable[dim] ) ),
    CALCULATE ( [measure], ALL ( dimtable ) )
)

 

Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.

View solution in original post

3 REPLIES 3
FreemanZ
Super User
Super User

hi @avachris 

unable to follow your reasoning. dataset with expected result would be more telling.

Hi basically I am trying to set a dynamic table variable so that depending on a condition a different filter table is applied within the calculation context. 

I was trying to do this with a switch or an if but i think creating a variable via an iterator makes sense 

Hi @avachris 

 

Both IF and SWITCH are intended to return scalar results and don't support table results.

 

As a workaround, you can return different scalar expressions which contain different filters according to the conditions. This is supported. For example, 

Example measure =
IF (
    SELECTEDVALUE ( 'table'[column] ) = "x",
    CALCULATE ( [measure], TREATAS ( { "filter1", "filter2" }, dimtable[dim] ) ),
    CALCULATE ( [measure], ALL ( dimtable ) )
)

 

Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

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