Nota
Este es uno de una serie de artículos que detallan las soluciones enviadas para el desafío Podcast 2316.
Si bien la interfaz de Power Query es muy poderosa, aquellos que pueden ir más allá de la interfaz tienen superpoderes. Frank Tonsen envió esta solución. Retomemos el punto donde los datos se ven así:
Frank luego codifica un Table.Split, especificando que cada 5 registros debe ser una nueva tabla.
A partir de ahí, Table.FromList y más. En ese momento, puede hacer clic en cualquier celda de la Tabla y ver los datos en esa tabla. Aquí está la segunda celda de la Tabla.
Aquí está el código de Frank:
let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), RemovedTotals = Table.RemoveColumns(Source,("Column2", "Column3", "Column4", "Column5", "Column6")), TransposedTable = Table.Transpose(RemovedTotals), PromotedHeaders = Table.PromoteHeaders(TransposedTable, (PromoteAllScalars=true)), SplittedTable = Table.Split(PromotedHeaders,5), TableFromList = Table.FromList(SplittedTable, Splitter.SplitByNothing(), null, null, ExtraValues.Error), AddedColumn1 = Table.AddColumn(TableFromList, "Column2", each Table.PromoteHeaders(Table.Transpose(Table.DemoteHeaders((Column1))))), AddedColumn2 = Table.AddColumn(AddedColumn1, "Column3", each Table.AddColumn((Column2), "Employee", (x) => Table.ColumnNames((Column2))(1))), AddedColumn3 = Table.AddColumn(AddedColumn2, "Column4", each Table.RenameColumns((Column3), (Table.ColumnNames((Column3))(1), "Total"))), Combined = Table.Combine(AddedColumn3(Column4)), ReorderedColumns = Table.ReorderColumns(Combined,("Category Description", "Employee", "Q1", "Q2", "Q3", "Q4", "Total")), ChangedType = Table.TransformColumnTypes(ReorderedColumns,(("Category Description", type text), ("Employee", type text), ("Q1", type number), ("Q2", type number), ("Q3", type number), ("Q4", type number), ("Total", type number))) in ChangedType
Goodly de YouTube también compartió un video con una solución M personalizada para identificar dinámicamente todas las columnas que comienzan con "Empleado". Si bien esto no funcionaría en la vida real cuando los empleados se llaman Andy, Betty, Charlie, es un video genial: https://www.youtube.com/watch?v=xamU5QLNiew.
Regrese a la página principal del desafío Podcast 2316.
Lea el siguiente artículo de esta serie: Power Query: El mundo de Bill Szysz.