Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Nested IF condition with ISFILTERED function.

I All,
I have written DAX code like this: -

Measure = if(

ISFILTERED('optimisation'[BROADCASTER]),CALCULATE(DIVIDE ( [1], [2] ),

ALL('optimisation'[LEVEL]),'optimisation'[LEVEL] = "BROADCASTER"),

 

if(ISFILTERED('optimisation'[BROADCASTER]) && ISFILTERED(

'optimisation'[SERIES]),CALCULATE(DIVIDE ( [1], [2] ),

ALL('optimisation'[LEVEL]),'optimisation'[LEVEL] = "SERIES")))

But when I select any broadcaster from broadcaster filter its perfectly working but my second "If" condition fail when I select series from the filter it gives me a blank on card.




  • Hi Anonymous ,

     

    You can try below code:-

    Measure =
    VAR _series =
        CALCULATE (
            DIVIDE ( [1], [2] ),
            ALL ( 'optimisation'[LEVEL] ),
            'optimisation'[LEVEL] = "SERIES"
        )
    VAR _broadcaster =
        CALCULATE (
            DIVIDE ( [1], [2] ),
            ALL ( 'optimisation'[LEVEL] ),
            'optimisation'[LEVEL] = "BROADCASTER"
        )
    RETURN
        IF (
            ISFILTERED ( 'optimisation'[SERIES] ),
            IF ( ISFILTERED ( 'optimisation'[BROADCASTER] ), _series ),
            IF ( ISFILTERED ( 'optimisation'[BROADCASTER] ), _broadcaster )
        )

     

    Thanks,

    Samarth

4 Replies

  • Anonymous , for second one both should be filtered and you need to have some data for 'optimisation'[LEVEL] = "SERIES"

     

    If this does not help
    Can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data.

    • Anonymous's avatar
      Anonymous
      Not applicable

      amitchandak HI Thanks for your reply, I tested my measure i selected first broadcaster then series in filter while selecting series in filter card showing me the "Blank".
      I created separate measure for series and tested my values,
      Selecting broadcaster then series it works for me

      Measure 2 = if(ISFILTERED('optimisation'[BROADCASTER]) && ISFILTERED(
      'optimisation'[SERIES]),CALCULATE(DIVIDE ( [1], [2] ),
      ALL('optimisation[LEVEL]),'optimisation'[LEVEL] = "SERIES"))
      But in nested if condition it is not working.

  • Samarth_18's avatar
    Samarth_18
    Community Champion

    Hi Anonymous ,

     

    You can try below code:-

    Measure =
    VAR _series =
        CALCULATE (
            DIVIDE ( [1], [2] ),
            ALL ( 'optimisation'[LEVEL] ),
            'optimisation'[LEVEL] = "SERIES"
        )
    VAR _broadcaster =
        CALCULATE (
            DIVIDE ( [1], [2] ),
            ALL ( 'optimisation'[LEVEL] ),
            'optimisation'[LEVEL] = "BROADCASTER"
        )
    RETURN
        IF (
            ISFILTERED ( 'optimisation'[SERIES] ),
            IF ( ISFILTERED ( 'optimisation'[BROADCASTER] ), _series ),
            IF ( ISFILTERED ( 'optimisation'[BROADCASTER] ), _broadcaster )
        )

     

    Thanks,

    Samarth