Bilješka
Ovo je jedan od niza članaka koji detaljno opisuju rješenja poslana za izazov Podcast 2316.
U mom Power Query Challengeu jedan od koraka bio je uzeti polje imena iz svakog 5. zapisa i kopirati ga na pet zapisa. Moje originalno rješenje bilo je nezgrapno, računajući na činjenicu da će duljina imena biti duža od 2 znaka.
Nekoliko ljudi, uključujući MF Wonga, Michaela Karpfena, Petera Bartolomeja, Chrisa McNeila i Jamieja Rogersa, koristilo je puno bolje rješenje koje uključuje indeksnu kolumnu.
Podignimo postupak u kojem podaci izgledaju ovako:
![](https://cdn.wiki-base.com/7135778/power_query_number_groups_of_records_as_1_through_5_repeatedly_-_excel_tips_2.png.webp)
Prvo je MF Wong primijetio da vam ne treba prvih pet zapisa. Mogao bi ti koristiti
Home, Remove Rows, Remove Top Rows… , 5 Rows.
![](https://cdn.wiki-base.com/7135778/power_query_number_groups_of_records_as_1_through_5_repeatedly_-_excel_tips_3.png.webp)
Excel MVP Oz du Soleil iz programa Excel on Fire također se riješio te petorice, ali to je učinio dok su još bili stupci.
Zatim dodajte stupac, dodajte indeksni stupac od 0. To generira novi stupac od 0 do NN.
![](https://cdn.wiki-base.com/7135778/power_query_number_groups_of_records_as_1_through_5_repeatedly_-_excel_tips_4.png.webp)
S odabranim novim stupcem Indeks, idite na karticu Transform i odaberite padajući izbornik Standard iz grupe Number Tab. Budite oprezni: sličan je padajući izbornik na kartici Dodaj stupac, ali odabir onog na kartici Transformacija sprječava dodavanje dodatnog stupca. Odaberite Modulo s ovog padajućeg izbornika, a zatim navedite da želite ostatak nakon dijeljenja s 5.
![](https://cdn.wiki-base.com/7135778/power_query_number_groups_of_records_as_1_through_5_repeatedly_-_excel_tips_5.png.webp)
Zatim
![](https://cdn.wiki-base.com/7135778/power_query_number_groups_of_records_as_1_through_5_repeatedly_-_excel_tips_6.png.webp)
Ovo generira niz brojeva od 0 do 4 koji se ponavljaju iznova i iznova.
![](https://cdn.wiki-base.com/7135778/power_query_number_groups_of_records_as_1_through_5_repeatedly_-_excel_tips_7.png.webp)
Odavde su koraci za prenošenje imena zaposlenika slični mom originalnom videozapisu.
Dodajte uvjetni stupac koji donosi ime ili vrijednost Null, a zatim Popunite. Više načina za izračunavanje ovog stupca nalazi se u Power Queryju: Korištenje ostalih klauzula u uvjetnim stupcima.
![](https://cdn.wiki-base.com/7135778/power_query_number_groups_of_records_as_1_through_5_repeatedly_-_excel_tips_8.png.webp)
Ispunite dolje za popunjavanje imena iz prvog retka u sljedećih pet redaka.
Hvala MF Wongu na njegovom videu. Svakako uključite CC za engleske titlove.
https://www.youtube.com/watch?v=So1n7sLE_Mg
Video Petera Bartholomewa:
https://www.youtube.com/watch?v=gb3OPfF_BNc
Michael Karpfen je također shvatio da nema potrebe brisati ukupne vrijednosti i kasnije ih dodavati. Njegov M-kod je:
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"
Imajte na umu da je Josh Johnson također koristio indeksni stupac, ali kao jedan od prvih koraka i koristio ga je kao sortiranje u jednom od posljednjih koraka.
Povratak na glavnu stranicu za izazov Podcast 2316.
Pročitajte sljedeći članak iz ove serije: Power Query: izvlačenje lijevih 2 znaka iz stupca.