Forum Discussion

kmo's avatar
kmo
Regular Visitor
8 years ago
Solved

Normalize row based on another row's value

Hi,

 

I have a time series table like this one, and what I want to do is calculate a normalized Rating based on the relevant Rating for each Team and Rating_Type in year 1. To be clear, I mean I want to divide Rating by the year 1 value of Rating for each Year, Team, and Rating_type.

 

TeamYearRating_TypeRating
A1Happiness5
A1Quality4.5
A2Happiness5
A2Quality5
B1Happiness4.5
B1Quality5
B2Happiness4.5
B2Quality5
C1Happiness4
C1Quality5
C2Happiness3
C2Quality5

 

I've tried this a few different ways but none seem to work. I'm new to Power BI and I think I am still thinking of this in terms of how I'd do the calculation in excel, SQL, etc. Help me think in a Power BI way, please. Thanks.

  • HI kmo

     

    Try this column

     

    Column =
    Table1[Rating]
        / CALCULATE (
            SUM ( Table1[Rating] ),
            FILTER (
                ALLEXCEPT ( Table1, Table1[Team], Table1[Rating_Type] ),
                Table1[Year] = 1
            )
        )

6 Replies

  • SivaMani's avatar
    SivaMani
    Resident Rockstar

    Can you share your expected result for better understanding?

    • kmo's avatar
      kmo
      Regular Visitor

      Hi, here is the expected result. Does this help? Thanks!

      Team

      YearRating_TypeRatingRating_Normalized_by_Year_1
      A1Happiness5=5/5=100%
      A1Quality4.5=4.5/4.5=100%
      A2Happiness5=5/5=100%
      A2Quality5=5/4.5=111%
      B1Happiness4.5=4.5/4.5=100%
      B1Quality5=5/5=100%
      B2Happiness4.5=4.5/4.5=100%
      B2Quality5=5/5=100%
      C1Happiness4=4/4=100%
      C1Quality5=5/5=100%
      C2Happiness3=3/4=75%
      C2Quality5=5/5=100%
      • Zubair_Muhammad's avatar
        Zubair_Muhammad
        Community Champion

        HI kmo

         

        Try this column

         

        Column =
        Table1[Rating]
            / CALCULATE (
                SUM ( Table1[Rating] ),
                FILTER (
                    ALLEXCEPT ( Table1, Table1[Team], Table1[Rating_Type] ),
                    Table1[Year] = 1
                )
            )
  • You can use the below formula for your requirement 

    =
    Var Denominator = CALCULATE(SUM(Table2[Rating]), CALCULATETABLE(Table2, ALLEXCEPT(Table2, Table2[Team], Table2[Rating_Type]), Table2[Year] = 1))
    Return
    DIVIDE(Table2[Rating], Denominator)