Kuasa Kuasa: Bilangan Kumpulan Rekod sebanyak 1 hingga 5 berulang kali - Petua Excel

Isi kandungan

Catatan

Ini adalah salah satu rangkaian artikel yang memperincikan penyelesaian yang dihantar untuk cabaran Podcast 2316.

Dalam Power Query Challenge saya, salah satu langkahnya adalah dengan mengambil bidang nama dari setiap rekod ke-5 dan menyalinnya ke lima rekod. Penyelesaian asal saya adalah kikuk, bergantung pada fakta bahawa panjang nama itu lebih panjang daripada 2 aksara.

Beberapa orang, termasuk MF Wong, Michael Karpfen, Peter Bartholomew, Chris McNeil, Jamie Rogers menggunakan penyelesaian yang jauh lebih baik yang melibatkan ruangan Indeks.

Mari kita mulakan proses di mana data kelihatan seperti ini:

Jadual data

Pertama, MF Wong menyatakan bahawa anda tidak memerlukan lima rekod pertama. Anda boleh menggunakan

Home, Remove Rows, Remove Top Rows… , 5 Rows.

Keluarkan baris atas

Excel MVP Oz du Soleil dari Excel on Fire juga menyingkirkan kelima-lima mereka, tetapi dia melakukannya ketika mereka masih lajur.

Kemudian, Tambah Lajur, Tambah Lajur Indeks, Dari 0. Ini menghasilkan lajur baru 0 hingga NN.

Lajur indeks

Dengan lajur Indeks baru yang dipilih, pergi ke tab Transform dan pilih menu lungsur Standard dari kumpulan Tab Nombor. Hati-hati: terdapat drop-down yang serupa pada tab Add Column, tetapi memilih yang ada di tab Transform mencegah penambahan lajur tambahan. Pilih Modulo dari drop-down ini dan kemudian tentukan bahawa anda mahukan bakinya setelah dibahagi dengan 5.

Modulo

Kemudian

Modul

Ini menghasilkan rangkaian nombor dari 0 hingga 4 berulang berulang kali.

Keputusan

Dari sini, langkah untuk membawa nama pekerja adalah serupa dengan video asal saya.

Tambahkan lajur bersyarat yang membawa nama atau nilai Null dan kemudian Isi. Lebih banyak kaedah untuk mengira lajur ini terdapat di Kuasa Kuasa: Menggunakan Lain-lain Jika Klausa dalam Lajur Bersyarat.

Tambahkan lajur bersyarat

Isi Bawah untuk mengisi nama dari baris pertama hingga lima baris seterusnya.

Terima kasih kepada MF Wong untuk videonya. Pastikan menghidupkan CC untuk kapsyen Bahasa Inggeris.
https://www.youtube.com/watch?v=So1n7sLE_Mg

Video Peter Bartholomew:
https://www.youtube.com/watch?v=gb3OPfF_BNc

Michael Karpfen juga menyedari bahawa tidak perlu menghapus jumlah dan menambahkannya kembali kemudian. M-code-nya adalah:

let Quelle = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Höher gestufte Header" = Table.PromoteHeaders(Quelle, (PromoteAllScalars=true)), #"Geänderter Typ" = Table.TransformColumnTypes(#"Höher gestufte Header",(("Category Description", type text), ("Dept. Total", type number), ("Q1", type number), ("Q2", type number), ("Q3", type number), ("Q4", Int64.Type), ("Employee 1", type number), ("Q1_1", type number), ("Q2_2", type number), ("Q3_3", Int64.Type), ("Q4_4", Int64.Type), ("Employee 2", Int64.Type), ("Q1_5", Int64.Type), ("Q2_6", Int64.Type), ("Q3_7", Int64.Type), ("Q4_8", Int64.Type), ("Employee 3", Int64.Type), ("Q1_9", Int64.Type), ("Q2_10", Int64.Type), ("Q3_11", Int64.Type), ("Q4_12", Int64.Type), ("Employee 4", type number), ("Q1_13", type number), ("Q2_14", type number), ("Q3_15", type number), ("Q4_16", Int64.Type))), #"Entpivotierte andere Spalten" = Table.UnpivotOtherColumns(#"Geänderter Typ", ("Category Description"), "Attribut", "Wert"), #"Hinzugefügter Index" = Table.AddIndexColumn(#"Entpivotierte andere Spalten", "Index", 1, 1), #"Hinzugefügte benutzerdefinierte Spalte" = Table.AddColumn(#"Hinzugefügter Index", "Benutzerdefiniert", each Number.Mod((Index)-1,5)), #"Hinzugefügte benutzerdefinierte Spalte1" = Table.AddColumn(#"Hinzugefügte benutzerdefinierte Spalte", "Benutzerdefiniert.1", each if (Benutzerdefiniert)=0 then (Attribut) else null), #"Nach unten gefüllt" = Table.FillDown(#"Hinzugefügte benutzerdefinierte Spalte1",("Benutzerdefiniert.1")), #"Neu angeordnete Spalten" = Table.ReorderColumns(#"Nach unten gefüllt",("Benutzerdefiniert.1", "Attribut", "Category Description", "Wert", "Index", "Benutzerdefiniert")), #"Geänderter Typ1" = Table.TransformColumnTypes(#"Neu angeordnete Spalten",(("Benutzerdefiniert", type text))), #"Hinzugefügte benutzerdefinierte Spalte2" = Table.AddColumn(#"Geänderter Typ1", "Benutzerdefiniert.2", each if (Benutzerdefiniert) = "0" then "TOTAL" else "Q"&(Benutzerdefiniert)), #"Neu angeordnete Spalten1" = Table.ReorderColumns(#"Hinzugefügte benutzerdefinierte Spalte2",("Attribut", "Category Description", "Benutzerdefiniert.1", "Wert", "Index", "Benutzerdefiniert", "Benutzerdefiniert.2")), #"Entfernte Spalten" = Table.RemoveColumns(#"Neu angeordnete Spalten1",("Attribut", "Index", "Benutzerdefiniert")), #"Pivotierte Spalte" = Table.Pivot(#"Entfernte Spalten", List.Distinct(#"Entfernte Spalten"(Benutzerdefiniert.2)), "Benutzerdefiniert.2", "Wert", List.Sum), #"Neu angeordnete Spalten2" = Table.ReorderColumns(#"Pivotierte Spalte",("Benutzerdefiniert.1", "Category Description", "Q1", "Q2", "Q3", "Q4", "TOTAL")), #"Sortierte Zeilen" = Table.Sort(#"Neu angeordnete Spalten2",(("Benutzerdefiniert.1", Order.Ascending))), #"Umbenannte Spalten" = Table.RenameColumns(#"Sortierte Zeilen",(("Benutzerdefiniert.1", "Employee Name"))) in #"Umbenannte Spalten"

Perhatikan bahawa Josh Johnson juga menggunakan lajur Indeks, tetapi sebagai salah satu langkah pertama dan menggunakannya sebagai semacam dalam salah satu langkah terakhir.

Kembali ke halaman utama untuk cabaran Podcast 2316.

Baca artikel seterusnya dalam siri ini: Kuasa Kuasa: Mengeluarkan Karakter 2 Kiri Dari Lajur.

Artikel menarik...