Jõupäring: kirjendage kirjete rühmad korduvalt 1–5 - Exceli näpunäited

Lang L: none (table-of-contents)

Märge

See on üks artiklite seeria, mis kirjeldab üksikasjalikult Podcast 2316 väljakutsele saadetud lahendusi.

Minu Power Query Challenge'is oli üks sammudest võtta nimeväli igalt 5. kirjelt ja kopeerida see viie kirjeni. Minu algne lahendus oli kohmakas, arvestades sellega, et nime pikkus oleks pikem kui 2 tähemärki.

Mitmed inimesed, sealhulgas MF Wong, Michael Karpfen, Peter Bartholomew, Chris McNeil, Jamie Rogers, kasutasid palju paremat lahendust, mis hõlmas Indexi veergu.

Võtame kätte protsessi, kus andmed näevad välja sellised:

Andmetabel

Esiteks märkis MF Wong, et esimest viit plaati pole vaja. Sa võiksid kasutada

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

Eemaldage ülemised read

Exceli MV on Oz du Soleil Excelist on Fire ka neist viiest lahti saanud, kuid ta tegi seda siis, kui need olid veel veerud.

Seejärel lisage veerg Lisa, lisage indeksveerg väärtusele 0. See loob uue veeru 0 kuni NN.

Indeksi veerg

Kui uus veerg Indeks on valitud, minge vahekaardile Muuda ja valige rühma Numbrivahekaart rippmenüü Standard. Olge ettevaatlik: vahekaardil Lisa veerg on sarnane rippmenüü, kuid vahekaardil Muuda selle valimine takistab lisaveeru lisamist. Valige sellest rippmenüüst Modulo ja määrake seejärel, kui soovite järelejäänud osa jagada pärast 5-ga jagamist.

Modulo

Siis

Moodul

See genereerib arvude jada 0 kuni 4, mida korratakse ikka ja jälle.

Tulemus

Siit alates on töötajate nimede üleviimiseks vajalikud sammud minu algse videoga sarnased.

Lisage tingimuslik veerg, mis toob kas nime või väärtuse Null üle ja seejärel täitke. Rohkem võimalusi selle veeru arvutamiseks leiate jaotisest Power Query: tingimuste tulpades muude lausete kasutamine.

Lisage tingimuslik veerg

Täitke nimi, et täita nimi esimesest reast järgmise viie reani.

Täname MF Wongi tema video eest. Lülitage ingliskeelsete pealdiste jaoks kindlasti sisse CC.
https://www.youtube.com/watch?v=So1n7sLE_Mg

Peter Bartholomeuse video:
https://www.youtube.com/watch?v=gb3OPfF_BNc

Michael Karpfen mõistis ka seda, et pole vaja summe kustutada ja need hiljem uuesti lisada. Tema M-kood on:

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"

Pange tähele, et Josh Johnson kasutas ka veergu Indeks, kuid ühe esimese sammuna ja kasutas seda ühes viimases etapis sordina.

Naaske Podcast 2316 väljakutse avalehele.

Lugege selle sarja järgmist artiklit: Power Query: 2 vasakpoolse märgi väljavõtmine veerust.

Huvitavad Artiklid...