Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Calculated Column IF Amount Exceeds Dynamic Threshold

Hi, 

I am pretty new to Power BI, but I have the formula below to identify records that need Review by checking if the calculated Difference exceeds a Threshold. This formula works if I use it in a measure, but not with a calculated column. It incorrectly identifies rows as needing Review when it does not. The Threshold is a "WhatIf parameter" of whole numbers that users can change through a slicer. I want to use a calculated column because I intend to use Variance_check in a slicer to easily filter rows that require review.

 

Variance_check =

VAR Difference = CALCULATE(SUM('TB DATA'[Sales]), 'TB DATA'[Period] = "CurrentYear") - CALCULATE(SUM('TB DATA'[Sales]), 'TB DATA'[Period] = "PriorYear")

 

RETURN

IF(ABS(Difference) > Threshold[Value] , "Review" , "OK")

 

Any ideas on how to get this to work with a calculated column? Thank you in advance for the help!

  • Hi Anonymous 

    You want to create a column but the column is calculated to change dynamically, right?

    This seems to be impossible in Power Bi due to the difference between the measure and the calculated column. Columns are calculated and saved in the capture as soon as you create it, so the result in column won’t change when you do something on slicer.

    But you can try to use measure to show the result which defined to display based on the slicer

    Variance_check =
    VAR Difference =
        CALCULATE( SUM( 'TB DATA'[Sales] ), 'TB DATA'[Period] = "CurrentYear" )
            - CALCULATE( SUM( 'TB DATA'[Sales] ), 'TB DATA'[Period] = "PriorYear" )
    RETURN
        IF( ABS( Difference ) > Threshold[Value], "Review", BLANK() )
    

     

    Then unselect show items no data

    the result will behind the rows with blank。

     

    Best Regards

    Community Support Team _ chenwu zhu

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

5 Replies

  • Anonymous 

    Measures can see the selection you make in the slicer or Parameter but Calculated Columns and Tables cannot see them because, adding columns and tables happens in the data model, once you add they are available to be used in the report. 

    To achieve your requirement, you can assign the measure to the Filter Pane and Visual Filter and apply it accordingly to filter out the items dont need.

    • Anonymous's avatar
      Anonymous
      Not applicable

      Fowmy, thanks for the response. This will work, however, I wasn't intending to expose the Filter pane to users, but I guess there really isn't a way out for now. Appreciate your response.

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

    Hi Anonymous 

    You want to create a column but the column is calculated to change dynamically, right?

    This seems to be impossible in Power Bi due to the difference between the measure and the calculated column. Columns are calculated and saved in the capture as soon as you create it, so the result in column won’t change when you do something on slicer.

    But you can try to use measure to show the result which defined to display based on the slicer

    Variance_check =
    VAR Difference =
        CALCULATE( SUM( 'TB DATA'[Sales] ), 'TB DATA'[Period] = "CurrentYear" )
            - CALCULATE( SUM( 'TB DATA'[Sales] ), 'TB DATA'[Period] = "PriorYear" )
    RETURN
        IF( ABS( Difference ) > Threshold[Value], "Review", BLANK() )
    

     

    Then unselect show items no data

    the result will behind the rows with blank。

     

    Best Regards

    Community Support Team _ chenwu zhu

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Great, thanks for all the suggestions.