Forum Discussion
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
| ID | FEAT1 | FEAT2 | FEAT3 |
| 1 | TRUE | FALSE | FALSE |
| 2 | FALSE | TRUE | FALSE |
| 3 | TRUE | FALSE | TRUE |
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
- TomMartens
Super User
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
- daxer-almighty
Solution Sage
Well, with this table IT IS an AND filter. If you pivot the table on ID, this will then be an OR filter. - amitchandak
Super User
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 -- independentmeasure =
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))