Forum Discussion

jgreutert's avatar
jgreutert
Regular Visitor
5 years ago
Solved

Calculation between rows

Hi Everybody,

I would like to make calculations between row. Es.

COD.    DESC.     VAL

     1           A          5

     2           B          3

     3           C    NULL

I would like to put in the third row the calculation 5-3=2

Can anyone help me, please?

Thank you in advance.

 

  • Hello,

    I found the solution that I wanted. I post her in case can be useful for someonelse.

    I created a misure VALUE BIS

    VALUES BIS =

    VAR CURRENT_ROW=SELECTEDVALUE(TABLE[ID])

    VAR ROW3=CALCULATE(SUM(VALUE),FILTER(ALL(TABLE),TABLE[ID]=1))-CALCULATE(SUM(VALUE),FILTER(ALL(TABLE),TABLE[ID]=2))

    RETURN
    SWITCH(CURRENT_ROW,3,ROW3,SUM(VALUE))

     

    Best regards

4 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    jgreutert - Not sure you can really do that (replace the NULL with some value) if this is in an actual table. You could create a new column. See my article on Mean Time Between Failure (MTBF) which uses EARLIER: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p/339586.
    The basic pattern is:
    Column = 
      VAR __Current = [Value]
      VAR __Previous = MAXX(FILTER('Table','Table'[Date] < EARLIER('Table'[Date])),[Value])
    RETURN
      __Current - __Previous

  • jgreutert , Try like. But logic is not extendable

    maxx(filter(table,[COD] = earlier([COD]) -2),[VAL]) - maxx(filter(table,[COD] = earlier([COD]) -1),[VAL])

    • jgreutert's avatar
      jgreutert
      Regular Visitor

      Is it possibile to do it as misure?

      Many thanks for the useful answers!!

      • jgreutert's avatar
        jgreutert
        Regular Visitor

        Hello,

        I found the solution that I wanted. I post her in case can be useful for someonelse.

        I created a misure VALUE BIS

        VALUES BIS =

        VAR CURRENT_ROW=SELECTEDVALUE(TABLE[ID])

        VAR ROW3=CALCULATE(SUM(VALUE),FILTER(ALL(TABLE),TABLE[ID]=1))-CALCULATE(SUM(VALUE),FILTER(ALL(TABLE),TABLE[ID]=2))

        RETURN
        SWITCH(CURRENT_ROW,3,ROW3,SUM(VALUE))

         

        Best regards