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

Bemærk

Dette er en af ​​en række artikler, der beskriver løsninger sendt til Podcast 2316-udfordringen.

Mens Power Query-grænsefladen er meget stærk, har de, der kan gå ud over grænsefladen, superkræfter. Frank Tonsen sendte denne løsning ind. Lad os hente på det punkt, hvor dataene ser sådan ud:

Data i Power Query

Frank koder derefter en tabel.Split, idet han specificerer, at hver fem poster skal være en ny tabel.

Tabel. Opdeling

Derfra, Table.FromList og mere. På det tidspunkt kan du klikke på en hvilken som helst tabelcelle og se dataene i denne tabel. Her er den anden tabelcelle.

Tabel. Fra liste

Her er Franks kode:

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

Godt fra YouTube delte også en video med en tilpasset M-løsning til dynamisk at identificere alle de kolonner, der starter med "Medarbejder". Selvom dette ikke fungerer i det virkelige liv, når medarbejderne hedder Andy, Betty, Charlie, er det en sej video: https://www.youtube.com/watch?v=xamU5QLNiew.

Gå tilbage til hovedsiden for Podcast 2316-udfordringen.

Læs den næste artikel i denne serie: Power Query: The World of Bill Szysz.

Interessante artikler...