Power Query: oltre l'interfaccia utente: Table.Split e altro - Suggerimenti per Excel

Nota

Questo è uno di una serie di articoli che descrivono in dettaglio le soluzioni inviate per la sfida Podcast 2316.

Mentre l'interfaccia di Power Query è molto potente, coloro che possono andare oltre l'interfaccia hanno dei super poteri. Frank Tonsen ha inviato questa soluzione. Riprendiamo dal punto in cui i dati hanno questo aspetto:

Dati in Power Query

Frank quindi codifica un Table.Split, specificando che ogni 5 record dovrebbe essere una nuova tabella.

Table.Split

Da lì, Table.FromList e altro ancora. A quel punto, puoi fare clic su qualsiasi cella della tabella e vedere i dati in quella tabella. Ecco la seconda cella della tabella.

Table.FromList

Ecco il codice di Frank:

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 from YouTube ha anche condiviso un video con una soluzione M personalizzata per identificare dinamicamente tutte le colonne che iniziano con "Employee". Anche se questo non funzionerebbe nella vita reale quando i dipendenti si chiamano Andy, Betty, Charlie, è un bel video: https://www.youtube.com/watch?v=xamU5QLNiew.

Torna alla pagina principale per la sfida Podcast 2316.

Leggi il prossimo articolo di questa serie: Power Query: The World of Bill Szysz.

Articoli interessanti...