Forum Discussion
Keepfilters vs Filters
Here I have calculted two measures and they produced the same result. which one is more efficient and why?
Alex_Hasan
I would suggest you use the 1st Measure "Green Sales":
Explanation: You have effectively used KEEPFILTER here to show sales only when Green colour is visible. The most important point is, only the Product [Colour] column is used but the in the second measure, you are referring to the full Product table within the Filter function which is not efficient, also it will have the unexpected effect of expanded table.
4 Replies
- Fowmy
Super User
Alex_Hasan
I would suggest you use the 1st Measure "Green Sales":
Explanation: You have effectively used KEEPFILTER here to show sales only when Green colour is visible. The most important point is, only the Product [Colour] column is used but the in the second measure, you are referring to the full Product table within the Filter function which is not efficient, also it will have the unexpected effect of expanded table. - tamerj1
Community Champion
Hi Alex_Hasan
yes becuase the first one is actually
KEEPFILTERS ( FILTER(*Product, 'Product' [Color] = "green' ) )
where here KEEPFILTERS does nothing
- Alex_Hasan
Helper II
Hi tamerj1 , your answer seems confusing to me. Could you please elaborate?
- tamerj1
Community Champion
Sorry for the in accurate explanation.
CALCULATE ( [Amount], "Product' [Color] = "green" ) is actually translated intoCALCULATE ( [Amount], FILTER ( ALL ( Product), 'Product' [Color] = "green" ))
Which returns the value of green in all cells.
this is because the filter context of each cell contains the coplete product table while when using only FILTER the filter context in each cell contains only the related color therefore the intersection is empty except for green.