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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Jprada
Helper I
Helper I

combinar fusionar dos columnas en una columna

Hola:

 

Tengo la siguiente tabla de datos:

 

WBSFecha
 MIGO-1
Valor
MIGO-1
MIGO - 1Fecha
 MIGO-2
Valor
MIGO-2
MIGO - 2
P0467-23/0106-00-3-0-0222/11/20234.600.0008786618048   
P0467-23/0106-00-3-0-0221/12/20232.483.4508788795462   
P0467-23/0106-00-3-0-0722/11/202336.977.3128786641921   
P0467-23/0106-00-3-0-0114/04/202480.000.000857474441118/06/202410.000.00052552654656
P0467-23/0106-00-7-0-0118/04/2024193919609N/A   
P0467-23/0106-00-7-0-0218/04/202420549568N/A   

 

Jprada_0-1713457921391.png

 

Y necesito poder unir la informacion en una solo columna la informacion de fecha y la informacion valor de modo que pueda agrupar por WBS el total por mes de lo que se pago.

 

Intente trasponer los valores de fecha y columna haciendo dos operaciones por aparte y el resultado es este:

Jprada_1-1713458085001.png

 

donde se esta duplicando los valores que estan resaltados en amarillo y el valor final de la suma de MIGO no es correcto.

 

entoces lo hice en una sola operacion de trasponer:

 

Jprada_2-1713458336699.png

 Aca el valor si es correcto pero como la fecha y valor estan en la misma columna no puedo ajustar el formato de fecha de manera individula para poderlo organizar cronologicamente:

 

Jprada_3-1713458452050.png

Pensaba en hacer una fila condicional que copiara el valor de la fecha y a esta nueva fila le pongo el formato correcto. Quisiera saber como se hace o que sugerencias tienen para esta tabla.

 

Gracias. 

 

 

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Necesita una limpieza en los nombres de columna iniciales.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jZBLDsIwDETv0nWTjB3/suQCiH3V+1+DtGpQ+QiQvLCl8Zuxl2W6QcwT1wKCJSDVhASe5om5EBUG1z5INiAD6H14mFFAog9HrfNXFBXigeIsUbPogQpvKsb/oPw1VbXc3HMlHrGEGtM/rE1EUiAbS7b1/bxxorq4iNAuiwIbMjrLlFXZeny1z1b+sIqTFbXaqBla76/l8iOujy8+MRgqTS3eEOsd", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [WBS = _t, #"Date MIGO-1" = _t, #"Value MIGO-1" = _t, #"Item MIGO-1" = _t, #"Date MIGO-2" = _t, #"Value MIGO-2" = _t, #"Item MIGO-2" = _t]),
    #"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"WBS","Index"}, "Attribute", "Value"),
    #"Filtered Rows" = Table.SelectRows(#"Unpivoted Other Columns", each ([Value] <> "")),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Filtered Rows", "Attribute", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Attribute.1", "Attribute.2"}),
    #"Pivoted Column" = Table.Pivot(#"Split Column by Delimiter", List.Distinct(#"Split Column by Delimiter"[Attribute.1]), "Attribute.1", "Value")
in
    #"Pivoted Column"

Cómo usar este código: Crear una nueva consulta en blanco. Haga clic en "Editor avanzado". Reemplace el código de la ventana por el código que se proporciona aquí. Haga clic en "Listo". Una vez que haya examinado el código, reemplace el paso Origen por su propio código fuente.

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Necesita una limpieza en los nombres de columna iniciales.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("jZBLDsIwDETv0nWTjB3/suQCiH3V+1+DtGpQ+QiQvLCl8Zuxl2W6QcwT1wKCJSDVhASe5om5EBUG1z5INiAD6H14mFFAog9HrfNXFBXigeIsUbPogQpvKsb/oPw1VbXc3HMlHrGEGtM/rE1EUiAbS7b1/bxxorq4iNAuiwIbMjrLlFXZeny1z1b+sIqTFbXaqBla76/l8iOujy8+MRgqTS3eEOsd", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [WBS = _t, #"Date MIGO-1" = _t, #"Value MIGO-1" = _t, #"Item MIGO-1" = _t, #"Date MIGO-2" = _t, #"Value MIGO-2" = _t, #"Item MIGO-2" = _t]),
    #"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"WBS","Index"}, "Attribute", "Value"),
    #"Filtered Rows" = Table.SelectRows(#"Unpivoted Other Columns", each ([Value] <> "")),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Filtered Rows", "Attribute", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Attribute.1", "Attribute.2"}),
    #"Pivoted Column" = Table.Pivot(#"Split Column by Delimiter", List.Distinct(#"Split Column by Delimiter"[Attribute.1]), "Attribute.1", "Value")
in
    #"Pivoted Column"

Cómo usar este código: Crear una nueva consulta en blanco. Haga clic en "Editor avanzado". Reemplace el código de la ventana por el código que se proporciona aquí. Haga clic en "Listo". Una vez que haya examinado el código, reemplace el paso Origen por su propio código fuente.

Hola

 

Gracias por la ayuda, probe el codigo como lo enviaste y funciona. Sin embargo lo fui a replicar en la tabla complera para incluir otros elementos pero no me da le mismo resultado.

 

 

let
    Origen = Excel.CurrentWorkbook(){[Name="Tabla_Control"]}[Content],
    #"Tipo cambiado" = Table.TransformColumnTypes(Origen,{{"PR", type any}, {"Requerimiento", type text}, {"WBS", type text}, {"IT", type text}, {"No Proveedor", type any}, {"Proveedor", type any}, {"Fecha Solicitud", type any}, {"Orden de compra", type any}, {"Valor PO", type number}, {"Moneda", type text}, {"TRM", Int64.Type}, {"Valor PO - LC", type number}, {"Fecha creacion", type datetime}, {"Fecha Entrega PO", type datetime}, {"Commited", type number}, {"Acta de entrega", type any}, {"Fecha Entrega REAL", type any}, {"Observaciones", type any}, {"Fecha_MIGO_1", type datetime}, {"Valor #(lf)MIGO-1", type number}, {"MIGO - 1", type any}, {"Fecha_MIGO_2", type any}, {"Valor #(lf)MIGO-2", type any}, {"MIGO - 2", type any}, {"Fecha_MIGO_3", type any}, {"Valor #(lf)MIGO-3", type any}, {"MIGO - 3", type any}, {"Fecha_MIGO_4", type any}, {"Valor #(lf)MIGO-4", type any}, {"MIGO - 4", type any}, {"Check Status#(lf)PO Vencida", type text}, {"Check Status#(lf)PO Completa", type any}}),
    #"Columnas con nombre cambiado" = Table.RenameColumns(#"Tipo cambiado",{{"Fecha Entrega PO", "Fecha Commited"}, {"Commited", "Valor Commited"}, {"Valor #(lf)MIGO-1", "Valor MIGO-1"}, {"Fecha_MIGO_1", "Fecha MIGO-1"}, {"Fecha_MIGO_2", "Fecha MIGO-2"}, {"Valor #(lf)MIGO-2", "Valor MIGO-2"}, {"Fecha_MIGO_3", "Fecha MIGO-3"}, {"Valor #(lf)MIGO-3", "Valor MIGO-3"}, {"Fecha_MIGO_4", "Fecha MIGO-4"}, {"Valor #(lf)MIGO-4", "Valor MIGO-4"}}),
    #"Tipo cambiado2" = Table.TransformColumnTypes(#"Columnas con nombre cambiado",{{"Fecha Commited", type date}, {"Fecha MIGO-1", type date}, {"Fecha MIGO-2", type date}, {"Fecha MIGO-3", type date}, {"Fecha MIGO-4", type date}}),
    #"Se ha anulado la dinamización de las columnas seleccionadas únicamente." = Table.Unpivot(#"Tipo cambiado2", {"Valor Commited", "Fecha Commited", "Fecha MIGO-1", "Valor MIGO-1", "Fecha MIGO-2", "Valor MIGO-2", "Fecha MIGO-3", "Valor MIGO-3", "Fecha MIGO-4", "Valor MIGO-4"}, "Atributo", "Valor"),
    #"Filas filtradas" = Table.SelectRows(#"Se ha anulado la dinamización de las columnas seleccionadas únicamente.", each ([Valor] <> 0)),
    #"Dividir columna por delimitador" = Table.SplitColumn(#"Filas filtradas", "Atributo", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Atributo.1", "Atributo.2"}),
    #"Tipo cambiado1" = Table.TransformColumnTypes(#"Dividir columna por delimitador",{{"Atributo.1", type text}, {"Atributo.2", type text}}),
    #"Columna dinamizada" = Table.Pivot(#"Tipo cambiado1", List.Distinct(#"Tipo cambiado1"[Atributo.1]), "Atributo.1", "Valor", List.Count)
in
    #"Columna dinamizada"

 

Sabes que estoy haciendo mal?

Véase mi nota sobre la limpieza de columnas. Los nombres de columna son incoherentes y deben alinearse antes de poder utilizarlos.

por ejemplo, en lugar de "MIGO - 3" debe usar "Item MIGO-3"

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.