Agrupar tabla por clave y extraer una fila por grupo

Un usuario Pregunto ✅

Molotch

La imposibilidad de unir tablas calculadas y no relacionadas hace que sea muy difícil o tal vez imposible realizar ciertos cálculos de tablas.

Tengo la necesidad de agrupar una tabla por una columna clave y luego extraer una fila completa por agrupación por el valor máximo en una columna. He intentado todo lo que se me ocurre, pero no he encontrado la manera de hacerlo.

En teoría, cree que debería poder ajustar la columna de valor a la clave y MIN (fecha) a través de un ADDCOLUMNS externo con un cambio de contexto de filtro de cálculo. No tuve tanta suerte, esto trae todas las filas de Valor de la agrupación de claves, la columna MIN (Fecha) no se usa en el alcance (probablemente porque es una expresión) por lo que el cálculo del valor seleccionado en el alcance externo solo funciona si es distinto (Valores ) devuelve un valor por agrupación de claves. Tan pronto como una agrupación de claves tiene varios valores, devuelve EN BLANCO.

ADDCOLUMNS(
            SUMMARIZECOLUMNS(
                Table[Key];
                "Date"; MIN(Table[Date])
            );
           "Value"; CALCULATE(SELECTEDVALUE(Table[Value]))
)

¿Alguna idea sobre cómo lograr lo anterior? Mi objetivo es filtrar una fila según algún valor por agrupación. Obtener el valor máximo para una columna funciona, pero me gustaría usar esa referencia de fila de alguna manera para traer las otras columnas de la misma fila.

Zubair_Muhammad

Hola @Molotch

Prueba este

=
ADDCOLUMNS (
    SUMMARIZECOLUMNS ( 'Table'[Key], "Date", MIN ( 'Table'[Date] ) ),
    "Value", CALCULATE (
        SELECTEDVALUE ( 'Table'[Value] ),
        'Table'[Date] = EARLIER ( [Date] )
    )
)

Zubair_Muhammad

Hola @Molotch

Prueba este

=
ADDCOLUMNS (
    SUMMARIZECOLUMNS ( 'Table'[Key], "Date", MIN ( 'Table'[Date] ) ),
    "Value", CALCULATE (
        SELECTEDVALUE ( 'Table'[Value] ),
        'Table'[Date] = EARLIER ( [Date] )
    )
)

Molotch

En respuesta a Zubair_Muhammad

@Zubair_Muhammad Magic, un MÁS TEMPRANO en el cálculo hizo el truco. ¿¡¿Por qué no pensé en eso?!? 🙂 Muchas gracias.

@nickchobotar Gracias por el cálculo de M. Podría necesitarlo en el futuro.

nickchobotar

En respuesta a Zubair_Muhammad

@Molotch

Aquí cómo se hace esto en M

Este es el script para extraer el valor máximo.

= Table.AddColumn(
   #"Grouped Rows", 
     "Custom", 
         each List.Max(Table.Column([Group], "Values")
  ))

MaxValue.gif

Nick –

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *