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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
dwhittaker1
Helper II
Helper II

Bi-Directional filtering

I have two tables, the first table is the QuoteLineItem table the second table is the QuoteHeader Table. The QuoteHeader Table is the one side of a 1 to many relationship with the QuoteLineItem table. The tables are related based on Quote id. I would like the ability to slice the QuoteHeader Table by Part Number, Customer number and description (these 3 are located on the QuoteLineItem table). I can do this if I set the cross-filter direction as both for the relationship between the two tables but I have read that I should not do this. Is it safe for me to set up this bidirectional relationship? Is there another approach I should take?

 

Quote Header Table

QuoteIdQuote Account Quote SiteAmountCM%Status
BAC3468TREVESMONTERREY$141,07961.28Approved

 

 

 

QuoteLineItem Table

QuoteIdQuote Quote Line cust Part # Part #Description
BAC3468A2371ABCRetainer
BAC3468B2371ABDRetainer
BAC3468C2642BASRetainer
BAC3468D2711SADRetainer
BAC3468E2711LWIRetainer
BAC3468F3012CDCRetainer
BAC3468G3012AJKRetainer
1 ACCEPTED SOLUTION
v-pnaroju-msft
Community Support
Community Support

Thankyou, @Irwan, for your response.

Hi dwhittaker1,

We thank you for your question in the Microsoft Fabric Community Forum.

As I understand, you are right to be careful about using bidirectional relationships. They can be useful but should be used carefully.

By default, Power BI relationships go from one side to many. So, filters from the QuoteLineItem table (many side) do not affect the QuoteHeader table unless you switch on bidirectional filtering.

For simple and medium sized models, it is okay to set the cross-filter direction to Both, especially if there are no circular relationships, the dataset is not very big, and you clearly understand how filters work. In these cases, using bidirectional filtering is an easy solution and works well.

If your model is large or complex, or if you want to avoid bidirectional filtering, you can use a disconnected dimension table and apply filters with TREATAS in a measure. But for your current case, this is not needed unless there is a performance problem.

Also, please check these links:
Model relationships in Power BI Desktop - Power BI | Microsoft Learn
Bi-directional relationship guidance - Power BI | Microsoft Learn


We hope this information helps you solve the issue. If you have more questions, please feel free to ask the Microsoft Fabric community.

Thank you.

View solution in original post

5 REPLIES 5
v-pnaroju-msft
Community Support
Community Support

Hi dwhittaker1,

We are following up to see if what we shared solved your issue. If you need more support, please reach out to the Microsoft Fabric community.

Thank you.

v-pnaroju-msft
Community Support
Community Support

Hi dwhittaker1,

We would like to follow up and see whether the details we shared have resolved your problem.
If you need any more assistance, please feel free to connect with the Microsoft Fabric community.

Thank you.

johnt75
Super User
Super User

There's no need to make the relationship bi-directional. You can create a measure like

Quote Header is Visible =
IF (
    SELECTEDVALUE ( 'QuoteHeader'[Quote ID] )
        IN VALUES ( 'QuoteLineItem'[Quote ID] ),
    1
)

and use that as a filter on the visual, set to show only when the value is 1.

v-pnaroju-msft
Community Support
Community Support

Thankyou, @Irwan, for your response.

Hi dwhittaker1,

We thank you for your question in the Microsoft Fabric Community Forum.

As I understand, you are right to be careful about using bidirectional relationships. They can be useful but should be used carefully.

By default, Power BI relationships go from one side to many. So, filters from the QuoteLineItem table (many side) do not affect the QuoteHeader table unless you switch on bidirectional filtering.

For simple and medium sized models, it is okay to set the cross-filter direction to Both, especially if there are no circular relationships, the dataset is not very big, and you clearly understand how filters work. In these cases, using bidirectional filtering is an easy solution and works well.

If your model is large or complex, or if you want to avoid bidirectional filtering, you can use a disconnected dimension table and apply filters with TREATAS in a measure. But for your current case, this is not needed unless there is a performance problem.

Also, please check these links:
Model relationships in Power BI Desktop - Power BI | Microsoft Learn
Bi-directional relationship guidance - Power BI | Microsoft Learn


We hope this information helps you solve the issue. If you have more questions, please feel free to ask the Microsoft Fabric community.

Thank you.

Irwan
Super User
Super User

hello @dwhittaker1 

 

if you must do, many-to-many relationship is not bad in my opinion.

what you need to ensure is the unique value in column relationship when using many-to-many to prevent mismatch between two table.

 

in my case, i would create calculated column for concatenate two column in both table then do the many-to-many relationship in those two column.

 

for example: if you are using Part# as relationship then using many-to-many might lead into wrong value because there are multiple Part# with same description.

 

Hope this will help.

Thank you.

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

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

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors