cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
RYU209
Helper II
Helper II

Check if a value exists between many-to-tables in Direct Query

Hello,

I have two Direct Query tables with a Many-To-Many relationship (Table1 and Table2). They are connected by a key that is made up of a concatenated Transaction # and Order #. 

I have a Table Visual that holds records of Transaction, Order, and some other data elements from Table2. How can I create a measure filter that filters this visual to only show records that have a concatenated key that also exists in Table1? 

1 ACCEPTED SOLUTION
johnt75
Super User
Super User

You could create a measure like

Value is in Table1 =
VAR CurrentKey =
    SELECTEDVALUE ( 'Table2'[concatenated key] )
RETURN
    IF ( CurrentKey IN ALL ( 'Table1'[concatenated key] ), 1 )

and then use that as a visual level filter to only show when the value is 1

View solution in original post

4 REPLIES 4
johnt75
Super User
Super User

You could create a measure like

Value is in Table1 =
VAR CurrentKey =
    SELECTEDVALUE ( 'Table2'[concatenated key] )
RETURN
    IF ( CurrentKey IN ALL ( 'Table1'[concatenated key] ), 1 )

and then use that as a visual level filter to only show when the value is 1

@johnt75 That worked perfectly! 

Could you explain what IN and ALL are doing so I can understand how it works? 

ALL returns all the values of Table 1 key regardless of any filters which may be applied, including any filters from the many-to-many relationship.

IN then checks to see whether the current key exists in those values.

@johnt75 Thank you!

Helpful resources

Announcements
March 2023 Update3

Power BI March 2023 Update

Find out more about the March 2023 update.