Notă
Acesta este unul dintr-o serie de articole care detaliază soluțiile trimise pentru provocarea Podcast 2316.
În timp ce interfața Power Query este foarte puternică, cei care pot merge dincolo de interfață au super puteri. Frank Tonsen a trimis această soluție. Să luăm în considerare punctul în care datele arată astfel:

Frank codifică apoi un Table.Split, specificând că la fiecare 5 înregistrări ar trebui să fie un nou tabel.

De acolo, Table.FromList și multe altele. În acel moment, puteți face clic pe orice celulă de tabel și puteți vedea datele din acel tabel. Iată a doua celulă din tabel.

Iată codul lui 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 from YouTube a distribuit, de asemenea, un videoclip cu o soluție M personalizată pentru a identifica dinamic toate coloanele care încep cu „Angajat”. Deși acest lucru nu ar funcționa în viața reală atunci când angajații sunt numiți Andy, Betty, Charlie, este un videoclip grozav: https://www.youtube.com/watch?v=xamU5QLNiew.
Reveniți la pagina principală pentru provocarea Podcast 2316.
Citiți următorul articol din această serie: Power Query: The World of Bill Szysz.