Power Query: más allá de la interfaz de usuario: Table.Split y más - Consejos de Excel

Tabla de contenido

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í:

Datos en Power Query

Frank luego codifica un Table.Split, especificando que cada 5 registros debe ser una nueva tabla.

Mesa dividida

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.

Table.FromList

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.

Articulos interesantes...