Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
4 years ago
Solved

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?

SteffTh1994_0-1649070684658.png

¡Gracias!

  • @SteffTh1994 ,

    1. Cargue este archivo y use los encabezados como primera fila.
    2. Transponerlo
    3. Formatee la columna1 que contiene "nombre", "edad" y "tamaño".vchenwuzmsft_2-1649315333254.png

    4. Agregue índice y pivote la columna2 que contiene valores de nombre, antigüedad y tamaño.vchenwuzmsft_3-1649315376949.png

    5. Llenar Edad y tamaño.
    6. Elimine el índice y filtre el nombre donde es null.

    Resultado:

    vchenwuzmsft_4-1649315481398.png

    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

  • @SteffTh1994 ,

    1. Cargue este archivo y use los encabezados como primera fila.
    2. Transponerlo
    3. Formatee la columna1 que contiene "nombre", "edad" y "tamaño".vchenwuzmsft_2-1649315333254.png

    4. Agregue índice y pivote la columna2 que contiene valores de nombre, antigüedad y tamaño.vchenwuzmsft_3-1649315376949.png

    5. Llenar Edad y tamaño.
    6. Elimine el índice y filtre el nombre donde es null.

    Resultado:

    vchenwuzmsft_4-1649315481398.png

    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.