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
juan_pablo
Advocate III
Advocate III

Why crossfilter set to single works as if it was set to both?

Why DAX is able to filter in the opposite direction of the relationship even when the crossfiltering is set to single?

Take a Iook to this simple Model:

Captura de pantalla 2020-11-18 204258.png

The content of each table is as follow:

 

Table4

ItemqtyAssignedBoxPO
15AX
15BX
210CX
33DY

 

Table2

ItemqtyOrderedPO
110X
210X
35Y
45Y

 

Table1

PO
X
Y

 

When I create the calculated column "Cantidad Asignada" in Table2 with the DAX formula:

 

'Table2'[Cantidad Asignada] = CALCULATE(SUM(Table4[qtyAssigned]))

 

and then I create a table visual with the result of that calculated column, it's possible to see that somehow Table4 was filtered by Table2 using the PO column, but Table2 is supposed to NOT filter Table1 nor 4 because the direction of the filter (and set to single) should block the filters obtained from the context transition generated by the CALCULATE.

 

Captura de pantalla 2020-11-18 205321.png

Why does Table2 was able to filer Table1 and then Table4 (via Table1)?

 

1 ACCEPTED SOLUTION
v-xuding-msft
Community Support
Community Support

Hi @juan_pablo ,

 

Question: Why we can aggregate the values of table 4 in table 2?

v-xuding-msft_0-1606121743274.png

 

The calculation logic of your formula should be like this:

Step1, calculate the value of formula 1 and store the result in memory.

 

v-xuding-msft_0-1606122836409.png

 

Step2, Since the table relationship is created, we know that Table4[PO] = Table1[PO] && Table2[PO] = Table1[PO], so Table2[PO] = Table4[PO] (this is dynamically executed by DAX according to the Row Context). Therefore, the return value of formula 1 is aggregated in Table 2.

v-xuding-msft_2-1606121743288.png

 

(Note: If there is no relationship between the tables, you will find that the step2 can not be executed, which means that formula 1 can not complete the grouping and aggregation in table 2.)

 

In fact, your formula is also equivalent to the following formulas.

 

v-xuding-msft_1-1606122861639.pngv-xuding-msft_2-1606122869845.png

 

4.png

(Note: This is the result of manually completing row matching in the formula.)

 

Best Regards,
Xue Ding
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

2 REPLIES 2
v-xuding-msft
Community Support
Community Support

Hi @juan_pablo ,

 

Question: Why we can aggregate the values of table 4 in table 2?

v-xuding-msft_0-1606121743274.png

 

The calculation logic of your formula should be like this:

Step1, calculate the value of formula 1 and store the result in memory.

 

v-xuding-msft_0-1606122836409.png

 

Step2, Since the table relationship is created, we know that Table4[PO] = Table1[PO] && Table2[PO] = Table1[PO], so Table2[PO] = Table4[PO] (this is dynamically executed by DAX according to the Row Context). Therefore, the return value of formula 1 is aggregated in Table 2.

v-xuding-msft_2-1606121743288.png

 

(Note: If there is no relationship between the tables, you will find that the step2 can not be executed, which means that formula 1 can not complete the grouping and aggregation in table 2.)

 

In fact, your formula is also equivalent to the following formulas.

 

v-xuding-msft_1-1606122861639.pngv-xuding-msft_2-1606122869845.png

 

4.png

(Note: This is the result of manually completing row matching in the formula.)

 

Best Regards,
Xue Ding
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
amitchandak
Super User
Super User

@juan_pablo , Not very clear. But By deafult the join is right join in 1 -M. This means if there no value present on Many side that value will not come in visual .

 

If you need left join , You can use +0 , or Show item with no data, on the right click of PO(field in visual pane) in visual

 

You can use treatas to filter 4 with 2   https://docs.microsoft.com/en-us/dax/treatas-function

https://www.youtube.com/watch?v=pbAL_zG-Pgo

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

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