Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Matrix: Variance blank fields

Hi Everyone,

I created the below matrix but I need help to create an optimal variance between Plan and Actual. 

Right now I made the following DAX formula to measure Var:

Var = IF([Actual] = BLANK();BLANK();CALCULATE([Actual] - [Plan]))

This formula works fine but I want the yellow fields to be 0 instead of BLANK. 17-July and after needs to be blank as illustrated 🙂

 

Thank you

 

  • Hi  Anonymous ,

     

    Modify your measure as below:

    If(MAX[date]>=TODAY(),BLANK(),if(isblank([Plan]);0;CALCULATE([Actual] - [Plan])))
     
    Best Regards,
    Kelly
    Did I answer your question? Mark my post as a solution!

6 Replies

  • Anonymous , You can try.

    Var = IF(isblank([Actual]) ;blank();if(isblank([Plan]);0;CALCULATE([Actual] - [Plan])))

     

     

  • mahoneypat's avatar
    mahoneypat
    Microsoft Employee

    Assuming your matrix is using columns from your Date/Calendar table, you might approach it like this:

     

    NewMeasure =
    VAR thisdate =
        MIN ( 'Date'[Date] )
    VAR maxfactdate =
        CALCULATE ( MAX ( Fact[Date] ), ALL ( Fact ) )
    VAR thisactual = [Actual]
    RETURN
        IF (
            AND ( ISBLANK ( thisactual ), thisdate <= maxfactdate ),
            0,
            thisactual - [Plan]
        )

     

    It finds the max date for which you have data (maxfactdate) and uses that in the logic.  It also calculates your Actual as a variable, so it is calculated only once for performance reasons.

     

    If this works for you, please mark it as the solution.  Kudos are appreciated too.  Please let me know if not.

    Regards,

    Pat

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

    Hi Anonymous ,

     

    Try :

    if(isblank([Plan]);0;CALCULATE([Actual] - [Plan]))

     

    Best Regards,
    Kelly
    Did I answer your question? Mark my post as a solution!
    • Anonymous's avatar
      Anonymous
      Not applicable

      v-kelly-msft mahoneypat amitchandak  Thank you reply. I don't want zeros after today. So 21 July and after should be blank. All of your solutions include zeros after today 🙂

      • mahoneypat's avatar
        mahoneypat
        Microsoft Employee

        Please try this instead.

         

        NewMeasure =
        VAR thisdate =
            MIN ( 'Date'[Date] )
        VAR maxfactdate =
            CALCULATE ( MAX ( Fact[Date] ), ALL ( Fact ) )
        
        RETURN
            IF (
                thisdate <= maxfactdate ,
                [Actual] - [Plan] + 0,
                [Actual] - [Plan]
            )

         

        If that doesn't work, please return just the thisdate and maxfactdate variables in the return to see where the logic is breaking down for troubleshooting.

         

        If this works for you, please mark it as the solution.  Kudos are appreciated too.  Please let me know if not.

        Regards,

        Pat