Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

PrevRow + index problem

Guys, i'm using dax to get my prev row value based on my index number.  First, let's have a look at my table Ok, i need to sort first by my ID number to group all values that are the same, th...
  • v-yingjl's avatar
    5 years ago

    Hello @Vieiraguilherme ,

    You can create this computed column instead of the index column:

    Sort =
    VAR _rank =
        RANKX (
            FILTER ( ALL ( 'Table' ), 'Table'[ID Number] = EARLIER ( 'Table'[ID Number] ) ),
            'Table'[Changed On Timestamp],
            ,
            ASC,
            DENSE
        )
    VAR _sort =
        IF (
            [ID Number] = MIN ( 'Table'[ID Number] ),
            _rank,
            _rank
                + CALCULATE (
                    COUNTROWS (
                        FILTER ( ALL ( 'Table' ), 'Table'[ID Number] < MAX ( 'Table'[ID Number] ) )
                    )
                )
        )
    RETURN
        _sort
    

    Next, create a measure to get the previous row:

    _prerow = 
    CALCULATE (
        MAX ( 'Table'[Changed On Timestamp] ),
        FILTER (
            ALL ( 'Table' ),
            'Table'[Sort]
                = CALCULATE (
                    MAX ( 'Table'[Sort] ),
                    FILTER ( ALL ( 'Table' ), 'Table'[Sort] < MAX ( 'Table'[Sort] ) )
                )
        )
    )

    Current Result:

    before.png

    When you add a new row to the table, the value of the previous row is still received successfully:

    after.png

    Attached a sample file in the next one, hopes to help you.

    Best Looks,
    Yingjie Li

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