Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

PrevRow + problema de índice

Chicos, estoy usando dax para obtener mi valor de fila anterior basado en mi número de índice.
Primero, echemos un vistazo a mi mesa

Vieiraguilherme_0-1603885190392.png

Ok, necesito ordenar primero por mi número de identificación para agrupar todos los valores que son los mismos, luego necesito ordenar por fecha / hora, para obtener el orden de cómo se hizo nuestro proceso.

Luego creé mi índice para obtener mi valor anterior usando un var.

El problema es que, cuando se actualiza mi BI, un nuevo elemento se escribe como mi último índice y no se agrupa con los otros números de identificación.
Y este nuevo artículo no se contará en mi proceso porque no llena los requisitos de mi si.

Así es como conseguí mi fila prev "

Desencadenador (Trigger)
var idx á [índice]
var id_num [Número de identificación]
devolución
CALCULATE(MAX([Changed On Timestamp]),FILTER(table, 'table'[Index] á idx-1 )))"

Así que no tengo idea de cómo arreglarlo.
1 ACCEPTED SOLUTION
v-yingjl
Community Support
Community Support

Hola @Vieiraguilherme ,

Puede crear esta columna calculada en lugar de la columna de índice:

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

A continuación, cree una medida para obtener la fila anterior:

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

Resultado actual:

before.png

Cuando agredo una nueva fila en la tabla, el valor de la fila anterior todavía se sigue recibiendo correctamente:

after.png

Adjunto un archivo de muestra en el siguiente, espera ayudarle.

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

4 REPLIES 4
v-yingjl
Community Support
Community Support

Hola @Vieiraguilherme ,

Puede crear esta columna calculada en lugar de la columna de índice:

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

A continuación, cree una medida para obtener la fila anterior:

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

Resultado actual:

before.png

Cuando agredo una nueva fila en la tabla, el valor de la fila anterior todavía se sigue recibiendo correctamente:

after.png

Adjunto un archivo de muestra en el siguiente, espera ayudarle.

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Hola, ¿qué cosa este collumn/medida funcionará con un BI que tenga 250.000 filas?

Hola @Vieiraguilherme ,

La columna calculada y la medida deben funcionar.

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

amitchandak
Super User
Super User

@Vieiraguilherme , Probar como

nueva medida

Acionamento ?
CALCULATE(MAX([Changed On Timestamp]),FILTER(table, 'table'[Index] á max( 'table'[Index] )-1))

nueva columna

Acionamento ?
CALCULATE(MAX([Changed On Timestamp]),FILTER(table, 'table'[Index] á earlier( 'table'[Index] )-1))

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.