Power Query: Jenseits der Benutzeroberfläche: Table.Split und mehr - Excel-Tipps

Hinweis

Dies ist einer aus einer Reihe von Artikeln, in denen Lösungen für die Podcast 2316-Herausforderung aufgeführt sind.

Während die Power Query-Oberfläche sehr leistungsfähig ist, haben diejenigen, die über die Schnittstelle hinausgehen können, Superkräfte. Frank Tonsen hat diese Lösung eingeschickt. Lassen Sie uns an dem Punkt beginnen, an dem die Daten so aussehen:

Daten in Power Query

Frank codiert dann einen Table.Split und gibt an, dass alle 5 Datensätze eine neue Tabelle sein sollen.

Table.Split

Von dort Table.FromList und mehr. Zu diesem Zeitpunkt können Sie auf eine beliebige Tabellenzelle klicken und die Daten in dieser Tabelle anzeigen. Hier ist die zweite Tabellenzelle.

Table.FromList

Hier ist Franks Code:

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 von YouTube hat auch ein Video mit einer benutzerdefinierten M-Lösung geteilt, um alle Spalten, die mit "Mitarbeiter" beginnen, dynamisch zu identifizieren. Während dies im wirklichen Leben nicht funktionieren würde, wenn die Mitarbeiter Andy, Betty, Charlie heißen, ist es ein cooles Video: https://www.youtube.com/watch?v=xamU5QLNiew.

Kehren Sie zur Hauptseite für die Podcast 2316-Herausforderung zurück.

Lesen Sie den nächsten Artikel in dieser Reihe: Power Query: Die Welt von Bill Szysz.

Interessante Beiträge...