Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

How to create AND/OR filters

Hi, noob question here, apologies in advance if this is too trivial.

I have the following table in my data model

 

IDFEAT1FEAT2FEAT3
1TRUEFALSEFALSE
2FALSETRUEFALSE
3TRUEFALSETRUE

 

I am not sure about what happens when I create slicer filters. What if I create one slicer per feature and I set, let's say, feat1=TRUE and feat3=TRUE?
My guess is that I will see all records having feat1=TRUE and all records having feat3=TRUE, not all records having both eat1=TRUE and feat3=TRUE at the same time (i.e. it is not an AND filter).

 

So, how do I create AND filters?

  • Hey Anonymous ,

     

    acutally it's the other way around both slicers will work as AND.

    In a somewhat simpliefied thinking one can compare the behavior of slicers that are origin from the same table as the Auto-Filter feat in Excel.

     

    Regards,

    Tom

3 Replies

  • Hey Anonymous ,

     

    acutally it's the other way around both slicers will work as AND.

    In a somewhat simpliefied thinking one can compare the behavior of slicers that are origin from the same table as the Auto-Filter feat in Excel.

     

    Regards,

    Tom

  • Well, with this table IT IS an AND filter. If you pivot the table on ID, this will then be an OR filter.
  • Anonymous , AND is the default behavior. For Or you need one or 2 independent slicer

     

    one sclicer -- for both -- independent

    measure =
    var _tf = maxx(slicer,slicer[value]) //independent table
    return
    calculate(countrows(Table), filter(Table, Table[FEAT1] =_tf || Table[FEAT3] =_tf))

     

    // and

     

    measure =
    var _tf = maxx(slicer,slicer[value]) //independent table
    return
    calculate(countrows(Table), filter(Table, Table[FEAT1] =_tf && Table[FEAT3] =_tf))


    Two sclicerw -- one for each -- independent

    measure =
    var _tf = maxx(slicer,slicer[value]) //independent table
    var _tf1 = maxx(slicer1,slicer1[value]) //independent table
    return
    calculate(countrows(Table), filter(Table, Table[FEAT1] =_tf || Table[FEAT3] =_tf1))

     

    // and

     

    measure =
    var _tf = maxx(slicer,slicer[value]) //independent table
    var _tf1 = maxx(slicer1,slicer1[value]) //independent table
    return
    calculate(countrows(Table), filter(Table, Table[FEAT1] =_tf && Table[FEAT3] =_tf1))