Uwaga
Jest to jeden z serii artykułów opisujących szczegółowo rozwiązania przesłane w ramach wyzwania Podcast 2316.
Chociaż interfejs Power Query jest bardzo potężny, ci, którzy potrafią wyjść poza interfejs, mają super moce. Frank Tonsen przysłał to rozwiązanie. Przejdźmy do punktu, w którym dane wyglądają następująco:

Frank następnie koduje Table.Split, określając, że każde 5 rekordów powinno być nową tabelą.

Stamtąd Table.FromList i więcej. W tym momencie możesz kliknąć dowolną komórkę tabeli i zobaczyć dane w tej tabeli. Oto druga komórka tabeli.

Oto kod Franka:
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 z YouTube udostępnił również wideo za pomocą niestandardowego rozwiązania M, aby dynamicznie identyfikować wszystkie kolumny zaczynające się od „Pracownik”. Chociaż nie działałoby to w prawdziwym życiu, gdy pracownicy nazywają się Andy, Betty, Charlie, jest to fajny film: https://www.youtube.com/watch?v=xamU5QLNiew.
Wróć do strony głównej wyzwania Podcast 2316.
Przeczytaj następny artykuł z tej serii: Power Query: The World of Bill Szysz.