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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

PowerQuery - Datos semiestructurados en tabla

Hola

Tengo un archivo csv que está semiestructurado. Necesito poder extraer la información que quiero y volver a presentarla de manera tabular. He intentado rellenar a partir del ejemplo y no está funcionando tan bien como quiero.

This is what the source file looks likeThis is what the source file looks likeAsí es como se ve el archivo de origen

This is what the final output should look likeThis is what the final output should look likeAsí es como debería verse el resultado final

Quiero convertir el archivo de origen sin encabezados en una tabla que se parezca a la segunda tabla.

He intentado discutirlo con powerquery varias veces, desafortunadamente parece que no puedo descubrir cómo separar las filas superiores de las inferiores y los dos tipos diferentes de estadísticas capturadas. Cualquier ayuda será muy apreciada.

Aquí está el enlace al archivo fuente del archivo fuente

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@v-chenwuz-msft

Necesito un tipo de ayuda similar. Necesito poder separar una columna de datos en varias columnas donde aparece un determinado delimitador.

category.PNG

Quiero dividir esta columna en varias columnas por : delimitador. Quiero crear una nueva columna en todas partes: aparece el delimitador. Sé cómo encontrar la posición del delimitador, pero no sé cómo recorrer cada instancia. A continuación se muestra el resultado final que espero lograr.

category_I.PNG

Syndicate_Admin
Administrator
Administrator

Muchas gracias por la ayuda en esto. Comencé subconfigurando datos del conjunto de datos original, pero mirando su código, puedo omitir varios de los pasos que estaba haciendo. Este es un enfoque mucho mejor con menos pasos de los que había comenzado. Gracias un millón de veces 🙂

Syndicate_Admin
Administrator
Administrator

@chat_peters ,

Pruebe este código M:

let
    Source = Csv.Document(File.Contents("C:\Users\Admin\Desktop\data.csv"),[Delimiter=",", Columns=9, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}, {"Column4", Int64.Type}, {"Column5", Int64.Type}, {"Column6", Int64.Type}, {"Column7", Int64.Type}, {"Column8", Int64.Type}, {"Column9", Int64.Type}}),
    #"Removed Top Rows" = Table.Skip(#"Changed Type",10),
    #"Added Custom" = Table.AddColumn(#"Removed Top Rows", "blank", each null),
    #"Transposed Table" = Table.Transpose(#"Added Custom"),
    #"Filled Down" = Table.FillDown(#"Transposed Table",{"Column1", "Column9"}),
    #"Transposed Table1" = Table.Transpose(#"Filled Down"),
    #"Filled Down1" = Table.FillDown(#"Transposed Table1",{"Column10"}),
    #"Filtered Rows" = Table.SelectRows(#"Filled Down1", each [Column1] <> "" and [Column1] <> "Result Type:"),
    #"Promoted Headers" = Table.PromoteHeaders(#"Filtered Rows", [PromoteAllScalars=true]),
    #"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"Week", type text}, {"Person", type text}, {"1", Int64.Type}, {"2", Int64.Type}, {"3", Int64.Type}, {"4", Int64.Type}, {"5", Int64.Type}, {"6", Int64.Type}, {"7", Int64.Type}, {"Average", type text}}),
    #"Filtered Rows1" = Table.SelectRows(#"Changed Type1", each ([Week] <> "Week")),
    #"Renamed Columns" = Table.RenameColumns(#"Filtered Rows1",{{"Average", "Type"}}),
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Renamed Columns", {"Week", "Person", "Type"}, "Attribute", "Value"),
    #"Renamed Columns1" = Table.RenameColumns(#"Unpivoted Other Columns",{{"Attribute", "Day of week"}}),
    // date
    #"Kept First Rows" = Table.FirstN(#"Changed Type",3),
    #"Transposed Table_date" = Table.Transpose(#"Kept First Rows"),
    // Time in, Time out, Date
    #"Timein" = #"Transposed Table_date"{1}[Column1], 
    #"Timeout" = #"Transposed Table_date"{1}[Column2],
    #"Date" = #"Transposed Table_date"{1}[Column3],
    // Add column
    #"Added column" = Table.AddColumn(#"Renamed Columns1","Time in", each #"Timein"),
    #"Added Custom1" = Table.AddColumn(#"Added column", "Time out", each #"Timeout"),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Date", each #"Date"),
    #"Reordered Columns" = Table.ReorderColumns(#"Added Custom2",{"Date", "Time in", "Time out", "Week", "Person", "Type", "Day of week", "Value"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Reordered Columns",{{"Date", type date}, {"Time in", type datetime}, {"Time out", type datetime}})
in
    #"Changed Type2"

Resultado:

vchenwuzmsft_0-1659500834386.gif

Pbix al final puedes referirte.

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.

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors