Forum Discussion
Power Query: anexar datos
Hola a todos,
Actualmente tengo el siguiente problema con un conjunto de datos. Los datos se entregan en "bloques de datos" y no en una notación de base de datos. Ahora estoy tratando de transformarlos con la ayuda del editor de consultas para poder trabajar con ellos fácilmente.
¿Puede alguien de ustedes ayudarme? ¿Con qué función transformo mis datos como se desea?
¡Gracias!
- Cargue este archivo y use los encabezados como primera fila.
- Transponerlo
- Formatee la columna1 que contiene "nombre", "edad" y "tamaño".
- Agregue índice y pivote la columna2 que contiene valores de nombre, antigüedad y tamaño.
- Llenar Edad y tamaño.
- Elimine el índice y filtre el nombre donde es null.
Resultado:
Código que puede referirse a:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkgtSS1S0lEyNAUR5hZAEogCEktzQHwLMGEAEfRKzcurBNJGxiBRM1Ol2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Age = _t, Size = _t, #"(blank)" = _t, Name.1 = _t, Age.1 = _t, Size.1 = _t, #"(blank).1" = _t, Name.2 = _t, Age.2 = _t, Size.2 = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Age", Int64.Type}, {"Size", Int64.Type}, {"(blank)", type text}, {"Name.1", type text}, {"Age.1", Int64.Type}, {"Size.1", Int64.Type}, {"(blank).1", type text}, {"Name.2", type text}, {"Age.2", Int64.Type}, {"Size.2", Int64.Type}}), #"Demoted Headers" = Table.DemoteHeaders(#"Changed Type"), #"Changed Type1" = Table.TransformColumnTypes(#"Demoted Headers",{{"Column1", type text}, {"Column2", type any}, {"Column3", type any}, {"Column4", type text}, {"Column5", type text}, {"Column6", type any}, {"Column7", type any}, {"Column8", type text}, {"Column9", type text}, {"Column10", type any}, {"Column11", type any}}), #"Transposed Table" = Table.Transpose(#"Changed Type1"), #"Split Column by Delimiter" = Table.SplitColumn(#"Transposed Table", "Column1", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Column1.1", "Column1.2"}), #"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type text}, {"Column1.2", Int64.Type}}), #"Removed Columns" = Table.RemoveColumns(#"Changed Type2",{"Column1.2"}), #"Added Index" = Table.AddIndexColumn(#"Removed Columns", "Index", 0, 1, Int64.Type), #"Pivoted Column" = Table.Pivot(#"Added Index", List.Distinct(#"Added Index"[Column1.1]), "Column1.1", "Column2"), #"Removed Columns1" = Table.RemoveColumns(#"Pivoted Column",{"(blank)"}), #"Filled Up" = Table.FillUp(#"Removed Columns1",{"Age", "Size"}), #"Removed Columns2" = Table.RemoveColumns(#"Filled Up",{"Index"}), #"Filtered Rows" = Table.SelectRows(#"Removed Columns2", each [Name] <> null and [Name] <> "") in #"Filtered Rows"Saludos
Equipo de apoyo a la comunidad _ chenwu zhu
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
2 Replies
- Syndicate_AdminAdministrator
@SteffTh1994 , Unpivot y, a continuación, pivote debe hacerlo
https://radacad.com/pivot-and-unpivot-with-power-bi
Si esto no ayuda
¿Puede compartir datos de muestra y salida de muestra en formato de tabla? O un pbix de muestra después de eliminar datos confidenciales. - Syndicate_AdminAdministrator
- Cargue este archivo y use los encabezados como primera fila.
- Transponerlo
- Formatee la columna1 que contiene "nombre", "edad" y "tamaño".
- Agregue índice y pivote la columna2 que contiene valores de nombre, antigüedad y tamaño.
- Llenar Edad y tamaño.
- Elimine el índice y filtre el nombre donde es null.
Resultado:
Código que puede referirse a:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCkgtSS1S0lEyNAUR5hZAEogCEktzQHwLMGEAEfRKzcurBNJGxiBRM1Ol2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Age = _t, Size = _t, #"(blank)" = _t, Name.1 = _t, Age.1 = _t, Size.1 = _t, #"(blank).1" = _t, Name.2 = _t, Age.2 = _t, Size.2 = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Age", Int64.Type}, {"Size", Int64.Type}, {"(blank)", type text}, {"Name.1", type text}, {"Age.1", Int64.Type}, {"Size.1", Int64.Type}, {"(blank).1", type text}, {"Name.2", type text}, {"Age.2", Int64.Type}, {"Size.2", Int64.Type}}), #"Demoted Headers" = Table.DemoteHeaders(#"Changed Type"), #"Changed Type1" = Table.TransformColumnTypes(#"Demoted Headers",{{"Column1", type text}, {"Column2", type any}, {"Column3", type any}, {"Column4", type text}, {"Column5", type text}, {"Column6", type any}, {"Column7", type any}, {"Column8", type text}, {"Column9", type text}, {"Column10", type any}, {"Column11", type any}}), #"Transposed Table" = Table.Transpose(#"Changed Type1"), #"Split Column by Delimiter" = Table.SplitColumn(#"Transposed Table", "Column1", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Column1.1", "Column1.2"}), #"Changed Type2" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", type text}, {"Column1.2", Int64.Type}}), #"Removed Columns" = Table.RemoveColumns(#"Changed Type2",{"Column1.2"}), #"Added Index" = Table.AddIndexColumn(#"Removed Columns", "Index", 0, 1, Int64.Type), #"Pivoted Column" = Table.Pivot(#"Added Index", List.Distinct(#"Added Index"[Column1.1]), "Column1.1", "Column2"), #"Removed Columns1" = Table.RemoveColumns(#"Pivoted Column",{"(blank)"}), #"Filled Up" = Table.FillUp(#"Removed Columns1",{"Age", "Size"}), #"Removed Columns2" = Table.RemoveColumns(#"Filled Up",{"Index"}), #"Filtered Rows" = Table.SelectRows(#"Removed Columns2", each [Name] <> null and [Name] <> "") in #"Filtered Rows"Saludos
Equipo de apoyo a la comunidad _ chenwu zhu
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.