Забележка
Това е една от поредицата статии, описващи подробно решения, изпратени за предизвикателството на Podcast 2316.
Докато интерфейсът на Power Query е много мощен, тези, които могат да надхвърлят интерфейса, имат супер сили. Франк Тонсен изпрати това решение. Нека вземем в точката, където данните изглеждат така:

След това Франк кодира Table.Split, като посочва, че всеки 5 записа трябва да бъде нова таблица.

Оттам нататък Table.FromList и др. В този момент можете да кликнете върху която и да е клетка на таблицата и да видите данните в нея. Ето втората клетка на таблицата.

Ето кода на Франк:
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
Добре от YouTube също сподели видео с персонализирано решение M, за да идентифицира динамично всички колони, които започват с „Служител“. Въпреки че това няма да работи в реалния живот, когато служителите са на име Анди, Бети, Чарли, това е страхотно видео: https://www.youtube.com/watch?v=xamU5QLNiew.
Върнете се на главната страница за предизвикателството Podcast 2316.
Прочетете следващата статия от тази поредица: Power Query: Светът на Бил Шиш.