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
mariusz
Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución.
Por favor, siéntase libre de conectarse conmigo.
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"
mariusz
Si esta publicación ayuda, entonces por favor considere Aceptarlo como la solución.
Por favor, siéntase libre de conectarse conmigo.
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