Forum Discussion

Rondel's avatar
Rondel
Helper I
2 years ago

Filtering a Table based on two non-interacting slicers

Hello,

 

Is it possible to perform the following?

 

Dataset sample:

NameLetterNumber
Test1A1
Test2A1
Test3B3
Test4C2
Test5C4
Test6D5
Test7E6
Test8E7

 

***The request is such that when they filter the 'Letter' slicer = 'A' and 'Number' slicer = '7', they should see:

 

Expected Results:

NameLetterNumber
Test1A1
Test2A1
Test8E7

 

Is this possible?

5 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  Rondel ,

     

     

    Here are the steps you can follow:

    1. Create calculated table.

    Letter_Slicer =
     DISTINCT('Table'[Letter])
    Number_Slicer =
    DISTINCT('Table'[Number])

    2. Create measure.

    Flag =
    var _select1=SELECTEDVALUE('Letter_Slicer'[Letter])
    var _select2=SELECTEDVALUE('Number_Slicer'[Number])
    return
    IF(
        MAX('Table'[Letter]) = _select1 || MAX('Table'[Number]) = _select2,1,0)

    3. Place [Flag]in Filters, set is=1, apply filter.

    4. Result:

     

    Best Regards,

    Liu Yang

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

    • Rondel's avatar
      Rondel
      Helper I

      Thank you so much! 

      How should I go about it if multi-selection was needed for the [Letter] or [Number] column?  Seems to not be able to work when trying multi-selection.

  • You need to normalize these columns into their own dimension tables and then feed the slicers from those.

     

    If you want to implement an "OR"  logic you need to do that via measures, and use the measures as visual filters.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  Rondel ,

     

    If you want to consider using multiple selection, you can use the SELECTCOLUMNS() function:

    SELECTCOLUMNS function (DAX) - DAX | Microsoft Learn

    Flag =
    var _select1=SELECTCOLUMNS('Letter_Slicer',"letter",'Letter_Slicer'[Letter])
    var _select2=SELECTCOLUMNS('Number_Slicer',"number",'Number_Slicer'[Number])
    return
    IF(
        MAX('Table'[Letter]) IN _select1 || MAX('Table'[Number]) in _select2,1,0)

     

     

    Best Regards,

    Liu Yang

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

    • Rondel's avatar
      Rondel
      Helper I

      Hi Anonymous ,

       

      Seems that the filter doesn't work when doing multiple selection on just one of the columns: