Power Query: Beyond the User Interface: Table.Split and More - Excel Tips

Notera

Detta är en av en serie artiklar som beskriver lösningar som skickats in för Podcast 2316-utmaningen.

Medan Power Query-gränssnittet är mycket kraftfullt, har de som kan gå utöver gränssnittet superkrafter. Frank Tonsen skickade in denna lösning. Låt oss hämta vid den punkt där data ser ut så här:

Data i Power Query

Frank kodar sedan en tabell.Split, specificerar att var femte post ska vara en ny tabell.

Tabell. Split

Därifrån, Table.FromList och mer. Vid den tiden kan du klicka på vilken tabellcell som helst och se data i den tabellen. Här är den andra tabellcellen.

Table.FromList

Här är Franks kod:

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

Bra från YouTube delade också en video med en anpassad M-lösning för att dynamiskt identifiera alla kolumner som börjar med "Anställd". Även om detta inte skulle fungera i verkliga livet när anställda heter Andy, Betty, Charlie, är det en cool video: https://www.youtube.com/watch?v=xamU5QLNiew.

Gå tillbaka till huvudsidan för Podcast 2316-utmaningen.

Läs nästa artikel i denna serie: Power Query: The World of Bill Szysz.

Intressanta artiklar...