Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Keep filter Vs Calculate filter function

Hi

 

What is difference between below 2 formulas. With below formulas I got same results.

Then What is the use of KEEP FILTER & Where it is useful.

 

1)  CALCULATE(SUM(Data[Sales Amount]),FILTER(Data,Data[Product Category]="Formal"))

2)   CALCULATE(SUM(Data[Sales Amount]),KEEPFILTERS(Data[Product Category]="Formal"))

 

Regards

Raj Kumar

  • Hi Anonymous ,

    The FILTER function is used to return a subset table that contains the filtered rows.

    Syntax:

    FILTER(<table>,<filter>)

    table → Mention table name which needs to be filtered.

    filter → Expression which will be evaluated for each row of the table.

    Some key points to remember about this function are following

    1.FILTER cannot work independently, it should be embedded in other DAX functions that require a table as an argument.
    2.This function is not supported by the DirectQuery connection mode.
    KEEPFILTERS Function
    Similarly, the KEEPFILTERS function is also used to return a subset table that contains the filtered rows.

    Syntax:

    KEEPFILTERS(expression)

    expression → The expression will be evaluated for each row of the table.

    Some key points to remember about this function are following

    1.KEEPFILTERS function is used within another DAX function like CALCULATE, and then it will override the standard behaviour of the main function.
    2.This function is not supported by the DirectQuery connection mode.

     

    To learn more details about the different between the two dax ,refer the below article:

    How to Work with FILTER, KEEPFILTERS, REMOVEFILTERS Functions in DAX — DAX in Power BI

     

     

    Best Regards

    Lucien

2 Replies

  • v-luwang-msft's avatar
    v-luwang-msft
    Community Support

    Hi Anonymous ,

    The FILTER function is used to return a subset table that contains the filtered rows.

    Syntax:

    FILTER(<table>,<filter>)

    table → Mention table name which needs to be filtered.

    filter → Expression which will be evaluated for each row of the table.

    Some key points to remember about this function are following

    1.FILTER cannot work independently, it should be embedded in other DAX functions that require a table as an argument.
    2.This function is not supported by the DirectQuery connection mode.
    KEEPFILTERS Function
    Similarly, the KEEPFILTERS function is also used to return a subset table that contains the filtered rows.

    Syntax:

    KEEPFILTERS(expression)

    expression → The expression will be evaluated for each row of the table.

    Some key points to remember about this function are following

    1.KEEPFILTERS function is used within another DAX function like CALCULATE, and then it will override the standard behaviour of the main function.
    2.This function is not supported by the DirectQuery connection mode.

     

    To learn more details about the different between the two dax ,refer the below article:

    How to Work with FILTER, KEEPFILTERS, REMOVEFILTERS Functions in DAX — DAX in Power BI

     

     

    Best Regards

    Lucien