Forum Discussion
Filtering with many-to-many relationship
- 7 years ago
You should be able to do this with your existing tables with a measure like the following:
In Table1 missing in Table2 = IF( HASONEVALUE(Table1[OrderID]), Var _table1OrderID = MAX(Table1[OrderID]) Var _table2RowsWithTable1ID = CALCULATETABLE(Table2, TREATAS({_table1OrderID},Table2[OrderID])) Var _countOfMIssingRows = COUNTROWS(_table2RowsWithTable1ID) return IF(_countOfMissingRows = 0,"Missing") )Returns a result like this
Thanks, model is working nice. Somehow my own model does not work... can it be something with directquery?
No, I don't think DirectQuery would matter. I added a DirectQuery table to my test model and it worked fine. (I just added the text "<Found>" to the else section of the IF statement so that I could see the matched rows)
In SalesOrder1 missing in Internet Sales =
IF( HASONEVALUE(SalesOrders1[SalesOrderID]),
Var _table1OrderID = VALUES(SalesOrders1[SalesOrderID])
Var _table2RowsWithTable1ID = CALCULATETABLE('FactInternetSales', TREATAS({_table1OrderID},'FactInternetSales'[SalesOrderNumber]))
Var _countOfMIssingRows = COUNTROWS(_table2RowsWithTable1ID)
var _result = IF(_countOfMissingRows = 0,"Missing","<Found>")
return _result
)Are you sure that the hyphen characters are identical between the two data sets and that there is no trailing whitespace or anything like that?
- Anonymous7 years agoNot applicable
Thanks for putting some much time and effort into this question. I still have the same problem. See attached .gif.
- d_gosbell7 years ago
Super User
Is that a test model that you could upload to somewhere? If you have a bi-directional many to many relationship I can't think why table2 filters table1, but not the other way around.
- Anonymous7 years agoNot applicable
I copied the values from the tables and found out the directquery add's two spaces. I transformed the column with trim and it works..
Thanks!