Forum Discussion

MAAMI's avatar
MAAMI
Regular Visitor
6 years ago
Solved

Filter two columns with an "or" condition

I have created the table below, as an example of a part of my query. My query is a combination of several reports / excel-sheets, which include transactions with a sender name and a receiver name.

I want to create a slicer filter showing all sender+receiver locations, where if I in example choose to filter by "New York", it will show all rows where "New York" is mentioned either as sender or receiver. So in this example, it should show row numbers: 1, 2 and 8. How can I develop such a slicer filter?

 

Row numberReport numberSenderReceiver
11New YorkBerlin
21BeijingNew York
31ParisBerlin
42Los AngelesMadrid
52Los AngelesBerlin
63TokyoMadrid
74DubaiCopenhagen
84New YorkBeijing
94BerlinParis

 

 

  • Hi Maami,

     

    First step is to create a calculated column in the table to combine the sender and receiver values.

     

    SenderReceiver = COMBINEVALUES ( "|", Slicer[Sender], Slicer[Receiver] )
     
    Then create the table with the below measure.
     
    slicer test = DISTINCT(UNION(SELECTCOLUMNS(Slicer,"selection",Slicer[Sender],"both",Slicer[SenderReceiver]),
    SELECTCOLUMNS(Slicer,"selection",Slicer[Receiver],"both",Slicer[SenderReceiver])))
     
    Once the table is created, create a many to many cardinality and single filter direction between the table and slicer test table on senderreceiver and both columns.
     

3 Replies

  • Hi Maami,

     

    First step is to create a calculated column in the table to combine the sender and receiver values.

     

    SenderReceiver = COMBINEVALUES ( "|", Slicer[Sender], Slicer[Receiver] )
     
    Then create the table with the below measure.
     
    slicer test = DISTINCT(UNION(SELECTCOLUMNS(Slicer,"selection",Slicer[Sender],"both",Slicer[SenderReceiver]),
    SELECTCOLUMNS(Slicer,"selection",Slicer[Receiver],"both",Slicer[SenderReceiver])))
     
    Once the table is created, create a many to many cardinality and single filter direction between the table and slicer test table on senderreceiver and both columns.
     
    • MAAMI's avatar
      MAAMI
      Regular Visitor

      This worked like a charm, thanks!

  • create a slicer that did not join to this table

    And use this measure in you table of matrix

     

    measure =
    var _max = maxx(Slicer,Slicer[city]) // values(Slicer[city])
    return
    calculate(countrows(table),filter(table,table[Sender]=_max || table[Receiver]=_max))