combine varias filas en una sola fila con una columna como ID único

Un usuario Pregunto ✅

sanjusanj21

Hola a todos,

En realidad, estoy luchando en el caso siguiente en el que la fecha debe agregarse a todas las filas del valor clave de la primera columna que es MST_TO

até el llenado y el llenado no funciona para este caso de uso

MST_TO Transporte_Orden__c 07_Fecha de reserva del pedido 11_ Salida del pedido (CFS / CY) Fecha de origen 13_Fecha de envío en puerta de origen POL 14_Fecha del manifiesto de envío 17_Envío POL Fecha de salida 18_Fecha de llegada del POD de envío 19_Fecha de descarga del POD de envío 25_Flete de envío disponible 26_Fecha del POD de destino de la puerta de salida del envío 31_Fecha provisional de destino de la puerta de salida del envío 36_Envío entregado 05_Fecha de recogida del pedido 01_Fecha de creación del pedido 02_Fecha de aprobación del pedido 03_Fecha de envío solicitada por pedido 04_Fecha planificada del pedido 04_Fecha de envío del pedido 06_Fecha de validación de documentos de pedido 06_Fecha de recepción de documentos de pedido 07_Fecha de cancelación de la reserva del pedido 08_ Llegada del pedido (CFS / CY) Fecha de origen 17_Fecha de salida del transbordo 17_Fecha de llegada del transbordo
AAA DDDD nulo nulo 10/4/2020 14/05/2020 12/05/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo
AAA DDDD nulo nulo 10/4/2020 14/05/2020 12/05/2020 nulo nulo nulo nulo nulo 18/6/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo
AAA nulo nulo 10/4/2020 14/05/2020 12/05/2020 nulo nulo nulo nulo nulo nulo 9/4/2020 nulo 8/4/2020 10/4/2020 8/4/2020 8/4/2020 14/4/2020 9/4/2020 nulo 10/4/2020 nulo nulo
BBB EEE nulo nulo 4/5/2020 5/5/2020 7/5/2020 24/5/2020 25/5/2020 nulo 28/5/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo 13/05/2020 9/5/2020
BBB FFF nulo nulo 4/5/2020 5/5/2020 7/5/2020 24/5/2020 25/5/2020 nulo 28/5/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo 13/05/2020 9/5/2020
CCCC GGGG nulo nulo 28/03/2020 22/5/2020 5/4/2020 25/5/2020 26/05/2020 nulo 4/6/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo 19/5/2020 11/05/2020
CCCC nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo 27/03/2020 17/03/2020 18/03/2020 25/03/2020 25/03/2020 19/03/2020 2/4/2020 27/03/2020 nulo nulo nulo nulo
CCCC HHHH nulo nulo 28/03/2020 22/5/2020 5/4/2020 25/5/2020 26/05/2020 nulo 4/6/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo 19/5/2020 11/05/2020

la salida deseada es

MST_TO_NO__c Transporte_Orden__c 07_Fecha de reserva del pedido 11_ Salida del pedido (CFS / CY) Fecha de origen 13_Fecha de envío en puerta de origen POL 14_Fecha del manifiesto de envío 17_Envío POL Fecha de salida 18_Fecha de llegada del POD de envío 19_Fecha de descarga del POD de envío 25_Flete de envío disponible 26_Fecha del POD de destino de la puerta de salida del envío 31_Fecha provisional de destino de la puerta de salida del envío 36_Envío entregado 05_Fecha de recogida del pedido 01_Fecha de creación del pedido 02_Fecha de aprobación del pedido 03_Fecha de envío solicitada por pedido 04_Fecha planificada del pedido 04_Fecha de envío del pedido 06_Fecha de validación de documentos de pedido 06_Fecha de recepción de documentos de pedido 07_Fecha de cancelación de la reserva del pedido 08_ Llegada del pedido (CFS / CY) Fecha de origen 17_Fecha de salida del transbordo 17_Llegada del transbordo fecha
AAA DDDD nulo nulo 10/4/2020 14/05/2020 12/05/2020 nulo nulo nulo nulo nulo 18/6/2020 9/4/2020 nulo 8/4/2020 10/4/2020 8/4/2020 8/4/2020 14/4/2020 9/4/2020 nulo 10/4/2020 nulo nulo
AAA DDDD nulo nulo 10/4/2020 14/05/2020 12/05/2020 nulo nulo nulo nulo nulo 18/6/2020 9/4/2020 nulo 8/4/2020 10/4/2020 8/4/2020 8/4/2020 14/4/2020 9/4/2020 nulo 10/4/2020 nulo nulo
AAA nulo nulo 10/4/2020 14/05/2020 12/05/2020 nulo nulo nulo nulo nulo 18/6/2020 9/4/2020 nulo 8/4/2020 10/4/2020 8/4/2020 8/4/2020 14/4/2020 9/4/2020 nulo 10/4/2020 nulo nulo
BBB EEE nulo nulo 4/5/2020 5/5/2020 7/5/2020 24/5/2020 25/5/2020 nulo 28/5/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo 13/05/2020 9/5/2020
BBB FFF nulo nulo 4/5/2020 5/5/2020 7/5/2020 24/5/2020 25/5/2020 nulo 28/5/2020 nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo nulo 13/05/2020 9/5/2020
CCCC GGGG nulo nulo 28/03/2020 22/5/2020 5/4/2020 25/5/2020 26/05/2020 nulo 4/6/2020 nulo nulo 27/03/2020 17/03/2020 18/03/2020 25/03/2020 25/03/2020 19/03/2020 2/4/2020 27/03/2020 nulo nulo 19/5/2020 11/05/2020
CCCC nulo nulo 28/03/2020 22/5/2020 5/4/2020 25/5/2020 26/05/2020 nulo 4/6/2020 nulo nulo 27/03/2020 17/03/2020 18/03/2020 25/03/2020 25/03/2020 19/03/2020 2/4/2020 27/03/2020 nulo nulo 19/5/2020 11/05/2020
CCCC HHHH nulo nulo 28/03/2020 22/5/2020 5/4/2020 25/5/2020 26/05/2020 nulo 4/6/2020 nulo nulo 27/03/2020 17/03/2020 18/03/2020 25/03/2020 25/03/2020 19/03/2020 2/4/2020 27/03/2020 nulo nulo 19/5/2020 11/05/2020

Allison Kennedy

En respuesta a sanjusanj21

Ok, creo que ahora lo entiendo. Para resumir el problema:

Articulo Fecha

Automóvil club británico

nulo
Automóvil club británico 1 de julio de 2020
Automóvil club británico nulo
cama y desayuno nulo

cama y desayuno

nulo
cama y desayuno nulo
cama y desayuno 20 de julio de 2020

Resultado deseado:

Articulo Fecha

Automóvil club británico

1 de julio de 2020
Automóvil club británico 1 de julio de 2020
Automóvil club británico 1 de julio de 2020
cama y desayuno 20 de julio de 2020

cama y desayuno

20 de julio de 2020
cama y desayuno 20 de julio de 2020
cama y desayuno 20 de julio de 2020

SOLUCIÓN:

Mi pensamiento es agrupar por artículo, encontrar la fecha MÁXIMA para cada artículo y luego fusionarlo nuevamente en la tabla. Posiblemente podría crear una función personalizada para hacer esto por usted, pero aquí está el código M para los datos de muestra que creé para hacer esto. Deberá pegar esto en tres consultas en blanco en el Editor avanzado y nombrar las tablas como se muestra a continuación para verlo en acción.

RawData

dejar
Fuente = Table.FromRows (Json.Document (Binary.Decompress (Binary.FromText («i45WclTSUVKK1YEwDBW8SnMqdRSMDIwM4IKoDCdkhpEBugYnrOqUYmMB», BinaryEncoding.Base64), tipo de compresión n. [Serialized.Text = true]) en la tabla de tipos [Item = _t, Date = _t]),
# «Tipo modificado» = Table.TransformColumnTypes (Fuente, {{«Elemento», escriba texto}, {«Fecha», escriba fecha}}),
# «Índice agregado» = Table.AddIndexColumn (# «Tipo modificado», «Índice», 1, 1)
en
# «Índice agregado»

FillDate

dejar
Fuente = RawData,
# «Filas agrupadas» = Tabla.Grupo (Fuente, {«Elemento»}, {{«Fecha», cada Lista.Máx ([Date]), escriba fecha}})
en
# «Filas agrupadas»

Fusionar1

dejar
Fuente = Table.NestedJoin (RawData, {«Item»}, FillDate, {«Item»}, «FillDate», JoinKind.LeftOuter),
# «Expanded FillDate» = Table.ExpandTableColumn (Fuente, «FillDate», {«Date»}, {«Date.1»})
en
# «Fecha de relleno expandida»

Hola @ sanjusanj21

Puede utilizar Columnas calculadas o Medir para lograr su objetivo.

Puede hacer clic en este lugar y crear columnas calculadas o una nueva medida.

1.png

Utilice Columna (06_Fecha de recepción de documentos de pedido) y Columna (36_Envío entregado) como ejemplo.

1. Columnas calculadas:

C_06_Order Docs Received date =

CALCULATE(MAX('Table'[06_Order Docs Received date]),FILTER('Table','Table'[MST_TO]=EARLIER('Table'[MST_TO])))
C_36_Shipment Delivered =

CALCULATE(MAX('Table'[36_Shipment Delivered]),FILTER('Table','Table'[MST_TO]=EARLIER('Table'[MST_TO])))

Nota: Más información sobre la función anterior Dax: https: //docs.microsoft.com/en-us/dax/earlier-function-dax

2. La medida:

M_06_Order Docs Received date = 
CALCULATE(MAX('Table'[06_Order Docs Received date]),FILTER(ALL('Table'),'Table'[MST_TO]=MAX('Table'[MST_TO])))
M_36_Shipment Delivered = 
CALCULATE(MAX('Table'[36_Shipment Delivered]),FILTER(ALL('Table'),'Table'[MST_TO]=MAX('Table'[MST_TO])))

Resultado:

2.png

Otras columnas usan el mismo DAX.

Puede descargar el archivo pbix desde este enlace:

https: //qiuyunus-my.sharepoint.com/: u: / g / personal / tongzhou_qiuyunus_onmicrosoft_com / EVbEypVbkD5Nqgya …

Atentamente,

Rico Zhou

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Ashish_Mathur

Hola,

¿Por qué no funciona Fill Down? ¿A qué problema te enfrentas? Por favor elabora.

Allison Kennedy

¿Son solo las columnas 13, 14, 17 las que le preocupan? Explique cómo sabe qué fecha poner y por qué no funcionará el llenado / llenado, ya que a partir de los datos de muestra que proporcionó parece que podría hacerlo.
De lo contrario, ¿podría ser una columna condicional?

sanjusanj21

En respuesta a Allison Kennedy

Hola allison

Gracias por revisar mis inquietudes

Rellenar o rellenar rellena incorrectamente los datos donde no debería.

lo que quiero es tener todos los valores de fecha en todas las filas correspondientes solo a la primera columna solamente. no a otra clave.

en mi ejemplo, AAA como MST_TO, las filas deben contener todas las fechas en las tres filas solo en sus filas

sanjusanj21_0-1595214668407.png

En otras palabras
Puedo decir que para el valor clave del número MST_TO, si la segunda columna Transport_order_cc es nula, esos valores deben combinarse con las otras dos filas del valor clave MST_TO

sanjusanj21_0-1595216375239.png

Allison Kennedy

En respuesta a sanjusanj21

Ok, creo que ahora lo entiendo. Para resumir el problema:

Articulo Fecha

Automóvil club británico

nulo
Automóvil club británico 1 de julio de 2020
Automóvil club británico nulo
cama y desayuno nulo

cama y desayuno

nulo
cama y desayuno nulo
cama y desayuno 20 de julio 2020

Resultado deseado:

Articulo Fecha

Automóvil club británico

1 de julio de 2020
Automóvil club británico 1 de julio de 2020
Automóvil club británico 1 de julio de 2020
cama y desayuno 20 de julio de 2020

cama y desayuno

20 de julio de 2020
cama y desayuno 20 de julio de 2020
cama y desayuno 20 de julio de 2020

SOLUCIÓN:

Mi pensamiento es agrupar por artículo, encontrar la fecha MÁXIMA para cada artículo y luego fusionarlo nuevamente en la tabla. Posiblemente podría crear una función personalizada para hacer esto por usted, pero aquí está el código M para los datos de muestra que creé para hacer esto. Deberá pegar esto en tres consultas en blanco en el Editor avanzado y nombrar las tablas como se muestra a continuación para verlo en acción.

RawData

dejar
Fuente = Table.FromRows (Json.Document (Binary.Decompress (Binary.FromText («i45WclTSUVKK1YEwDBW8SnMqdRSMDIwM4IKoDCdkhpEBugYnrOqUYmMB», BinaryEncoding.Base64), tipo de compresión n. [Serialized.Text = true]) en la tabla de tipos [Item = _t, Date = _t]),
# «Tipo modificado» = Table.TransformColumnTypes (Fuente, {{«Elemento», escriba texto}, {«Fecha», escriba fecha}}),
# «Índice agregado» = Table.AddIndexColumn (# «Tipo modificado», «Índice», 1, 1)
en
# «Índice agregado»

FillDate

dejar
Fuente = RawData,
# «Filas agrupadas» = Tabla.Grupo (Fuente, {«Elemento»}, {{«Fecha», cada Lista.Máx ([Date]), escriba fecha}})
en
# «Filas agrupadas»

Fusionar1

dejar
Fuente = Table.NestedJoin (RawData, {«Item»}, FillDate, {«Item»}, «FillDate», JoinKind.LeftOuter),
# «Expanded FillDate» = Table.ExpandTableColumn (Fuente, «FillDate», {«Date»}, {«Date.1»})
en
# «Fecha de relleno expandida»

sanjusanj21

En respuesta a Allison Kennedy

@AllisonKennedy

Realmente aprecio tu ayuda aquí. me has alegrado el día 🙂

sanjusanj21_0-1595485497539.png

Lo probaré con mis datos reales.

Allison Kennedy

En respuesta a sanjusanj21

@ sanjusanj21 encantado de ayudar. ¡Espero que funcione bien con tus datos!

sanjusanj21

En respuesta a Allison Kennedy

@AllisonKennedy

¿Cómo escribo para expandir la columna de la tabla en Merg1 cuando tengo más de 1 columnas de fecha de FillDate?

FillDate

dejar
Fuente = RawData,
# «Filas agrupadas» = Table.Group (Source, {«MST_TO_NO__c»}, {{«01_Order Create date», cada List.Max ([01_Order Create date]), escriba date}, {«02_Order Approved date», cada List.Max ([02_Order Approved date]), escriba fecha}})
en
# «Filas agrupadas»

Fusionar1

dejar
Fuente = Table.NestedJoin (Derived_Event, {«MST_TO_NO__c»}, Group_Derived, {«MST_TO_NO__c»}, «Group_Derived», JoinKind.LeftOuter),
# «Expanded FillDate» = Table.ExpandTableColumn (Fuente, «Group_Derived», {«01_Order Create date»}, {«01_Order Create Date»}, {«02_Order Approved date»}, {«02_Order Approved Date»})
en
# «Fecha de relleno expandida»

sanjusanj21

En respuesta a sanjusanj21

@AllisonKennedy

# «Expanded FillDate» = Table.ExpandTableColumn (Fuente, «Group_Derived», {«01_Order Create date», «02_Order Approved date»}, {«01_Order Create Date», «02_Order Approved Date»})

Usé esto de esta manera, espero que sea correcto

Allison Kennedy

En respuesta a sanjusanj21

También puede hacer esto usando el engranaje de Configuración junto al nombre del paso en el panel Pasos aplicados en el lado derecho del Editor de Power Query, entonces no necesita escribir código M personalizado. 🙂

sanjusanj21

En respuesta a Allison Kennedy

@AllisonKennedy

¿Cómo hacemos lo mismo en la función personalizada?

Deja un comentario

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