Power Query: Di Luar Antarmuka Pengguna: Table.Split dan Lainnya - Tips Excel

Catatan

Ini adalah salah satu dari rangkaian artikel yang merinci solusi yang dikirim untuk tantangan Podcast 2316.

Meskipun antarmuka Power Query sangat andal, mereka yang dapat melampaui antarmuka memiliki kekuatan super. Frank Tonsen mengirimkan solusi ini. Mari kita lanjutkan pada titik di mana datanya terlihat seperti ini:

Data di Power Query

Frank kemudian mengkodekan Table.Split, menetapkan bahwa setiap 5 record harus menjadi tabel baru.

Tabel. Pisahkan

Dari sana, Table.FromList dan lainnya. Pada titik itu, Anda bisa mengklik sel Tabel mana saja dan melihat data di tabel itu. Ini adalah sel Tabel kedua.

Table.FromList

Ini kode 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 juga membagikan video dengan solusi M khusus untuk mengidentifikasi secara dinamis semua kolom yang dimulai dengan "Karyawan". Meskipun ini tidak akan berhasil dalam kehidupan nyata ketika karyawan bernama Andy, Betty, Charlie, ini adalah video yang keren: https://www.youtube.com/watch?v=xamU5QLNiew.

Kembali ke halaman utama untuk tantangan Podcast 2316.

Baca artikel berikutnya dalam seri ini: Power Query: The World of Bill Szysz.

Artikel yang menarik...