Agrupar por – Agregación (evitar valores N/A y elegir fecha)

Un usuario Pregunto ✅

vinaydavid

Hola expertos,

Tengo una situación en la que mi tabla contiene entradas duplicadas y estoy tratando de elegir la fecha más reciente.

Aquí está la maqueta.

ID No. Evento Fecha

1 11 abc N/A

1 11 abc 23/07/2019

2 22 xyz 01/08/2019

2 22 xyz 02/08/2019

Para lograr esto, usé group by en el editor de consultas de energía y usé ‘Max’ como la agregación para elegir la fecha máxima.

Sin embargo, para el escenario ID 1, se selecciona N/A. Pero necesito elegir la fecha en caso de que la otra entrada sea N/A.

Para el escenario ID 2, funciona perfectamente bien.

Amablemente ayuda

Salud,

David

vinaydavid

En respuesta a vinaydavid

En primer lugar gracias a Mariuz por este tiempo en ayudarme.

Después de pasar un poco de tiempo revisando todo lo asociado con estos campos.

Aquí están los hallazgos y realicé los cambios necesarios a continuación para lograr el resultado deseado.

  • El tipo de datos del campo ‘Fecha’ era ‘Texto’ -> de ahí el comportamiento de mostrar N/A en lugar de Fecha, creo. Lo cambié a ‘Fecha’ y luego la agregación funcionaba bien.
  • Para manejar los valores ‘N/A’ –> Lo reemplacé con una fecha ficticia ‘1/1/1970’ y apliqué la agregación para elegir la fecha máxima y una vez que se completaron todos los pasos, la reemplacé con N/A en lugar de la fecha ficticia .

Saludos,

David

mariusz

Hola @vinaydavid

Puede filtrar todo N/A antes de Agrupar por

Atentamente,
mariusz

Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución.

Por favor, siéntase libre de conectarse conmigo.
mariusz repczynski

vinaydavid

En respuesta a mariusz

Gracias por su respuesta,
No puedo hacer eso ya que algunos de los ID contienen fechas únicas y resultaron ser N/A, que son válidas.

mariusz

En respuesta a vinaydavid

Hola @vinaydavid

Consulte la siguiente solución que abordará los N/A válidos

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIEEYlJyUDST99RKVYHQ9jIWN/AXN/IwNASLGsEEgIRFZVVQNLAUN/AAresEYqsMVDIGETk5uXDLIwFAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, #"No." = _t, Event = _t, Date = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"No.", type text}, {"Event", type text}, {"Date", type date}}),
    #"Replaced Errors" = Table.ReplaceErrorValues(#"Changed Type", {{"Date", null}}),
    #"Grouped Rows" = Table.Group(#"Replaced Errors", {"ID", "No.", "Event"}, {{"MaxDate", each List.Max([Date]), type date}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Grouped Rows",{{"MaxDate", type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type1",null,"N/A",Replacer.ReplaceValue,{"MaxDate"})
in
    #"Replaced Value"
Atentamente,
mariusz

Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución.

Por favor, siéntase libre de conectarse conmigo.
mariusz repczynski

vinaydavid

En respuesta a mariusz

Hola mariusz

Este paso parece estar reemplazando los valores ‘nulo’ con ‘N/A’ para el campo Fecha.

La necesidad es elegir el campo de fecha si hay duplicados (donde uno es la fecha, el otro es N/A)

Además, hay otras entradas (sin duplicados) donde los valores pueden ser N/A.

Entonces quiero eliminar/Filtrar ‘N/A’, solo cuando tenemos duplicados para la ID.

¿Hay alguna manera de filtrar de esta manera?

vinaydavid

En respuesta a vinaydavid

En primer lugar gracias a Mariuz por este tiempo en ayudarme.

Después de pasar un poco de tiempo revisando todo lo asociado con estos campos.

Aquí están los hallazgos y realicé los cambios necesarios a continuación para lograr el resultado deseado.

  • El tipo de datos del campo ‘Fecha’ era ‘Texto’ -> de ahí el comportamiento de mostrar N/A en lugar de Fecha, creo. Lo cambié a ‘Fecha’ y luego la agregación funcionaba bien.
  • Para manejar los valores ‘N/A’ –> Lo reemplacé con una fecha ficticia ‘1/1/1970’ y apliqué la agregación para elegir la fecha máxima y una vez que se completaron todos los pasos, la reemplacé con N/A en lugar de la fecha ficticia .

Saludos,

David

vinaydavid

En respuesta a mariusz

¿Funcionará bien para escenarios como también?
3 33 Pqr N/D
4 44 meses N/A

Donde N/A son válidos ya que no hay duplicados… para ID 3 y 4

Deja un comentario

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