Forum Discussion

newpbiuser01's avatar
newpbiuser01
Helper V
1 year ago
Solved

Using Filter with a Calculate Function Based on a Condition

Hello,

 

Would anyone know if I can apply an if statement to whether or not the calculate function applies a filter? As an example, I'm trying to say, 

test =
VAR _Category =   SELECTEDVALUE ( 'Table1'[VALUE] )
RETURN
    CALCULATE (  SUM ( 'Table2'[TOTAL SAVINGS] ),
        IF (  _Category <> "All",
            FILTER ( 'Table2', [CATEGORY] = _Category ),
            ALLSELECTED ( 'Table2'[CATEGORY] )
        )
    )

However, I get an error saying "A Function "FILTER" has been used in a True/False experssion that is used as a table filter expression. That is now allowed".

Is there a way to only use filter with a calculate function when a condition is met?

  • How about this formula below?

     

    test =
        VAR _Category = SELECTEDVALUE ( 'Table1'[VALUE] )
        RETURN
        IF ( _Category <> "All",
            SUMX ( FILTER('Table2', 'Table2'[CATEGORY] = _Category), 'Table2'[TOTAL SAVINGS] ), 

            CALCULATE ( SUM ( 'Table2'[TOTAL SAVINGS] ), ALLSELECTED ( 'Table2'[CATEGORY] ))
        )

1 Reply

  • How about this formula below?

     

    test =
        VAR _Category = SELECTEDVALUE ( 'Table1'[VALUE] )
        RETURN
        IF ( _Category <> "All",
            SUMX ( FILTER('Table2', 'Table2'[CATEGORY] = _Category), 'Table2'[TOTAL SAVINGS] ), 

            CALCULATE ( SUM ( 'Table2'[TOTAL SAVINGS] ), ALLSELECTED ( 'Table2'[CATEGORY] ))
        )