Ridaüksuste sortimine - 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 lahenduse üks probleeme on see, et kategooriate lõplik järjestus ei vastanud tingimata veergude algsele järjestusele. Sain sellest aru oma video päris lõpus ja kuna see polnud eriti oluline, ei muretsenud ma selle pärast.

Josh Johnson saatis siiski lahenduse, mis sellega hakkama sai. Kui Josh ütles, et kasutab veergu Indeks, eeldasin, et see sarnaneb Power Query indeksile ja Modulole: Rekordide arvude gruppide arv on 1–5 korduvalt. Kuid Joshi kasutamine oli täiesti erinev.

Märkus: Exceli MVP John MacDougall kasutas samuti seda meetodit, kuid ta liitis indeksveeru kategooria kirjelduse lõppu. Vaadake Johni videot siit: https://www.youtube.com/watch?v=Dqmb6SEJDXI ja lugege tema koodi kohta lisateavet siit: Exceli MVP-d ründavad Power Query'is andmete puhastamise probleemi.

Protsessi alguses, kui Joshil oli veel vaid kuus kirjet, lisas ta indeksi, mis algab numbriga 1. Josh klõpsas valemiribal ja nimetas veeru Indeks ümber kategooriaks.

Valemiribal muudetud nimi

Veerg Kategooria oli uus viimane veerg. Ta kasutas algusesse liikumist Move, et liigutada seda esimeseks:

Liigu algusesse

Pärast seda juhtub palju muid samme. Need on sammud, mis on küll innovaatilised, kuid mida on seni enamasti käsitletud teistes artiklites. Pärast paljusid selliseid samme hakkasin arvama, et kategooria numbrid 1–6 olid lihtsalt viga. Arvasin, et tõenäoliselt kavatseb Josh need ilma kasutamata kustutada.

Josh Unpivots, seejärel tingimuslik veerg, seejärel täitke, seejärel pöördige, lisatakse summa. Tundub, et ta ei kasuta kunagi seda kategooria veergu. Pärast paljusid samme on ta siin:

Lisa kokku

Aga siis sorteerib Josh viimaste sammude korral andmed töötaja nime ja seejärel kategooria järgi!

Sorteeri töötaja nime kui kategooria järgi

Sel hetkel saab ta veeru Kategooria kustutada. Viimane erinevus: jõuvõtuvõlli jõuab enne projekti A, nagu see oli algsetes veergudes. See on kena puudutus.

Samuti juhin tähelepanu sellele, et Josh saatis video, kus ta neid samme läbib. Kiitus Joshile Power Query sees olevate kiirklahvide kasutamise eest!

Klaviatuuri otseteed

Siin on Joshi kood:

let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Promoted Headers" = Table.PromoteHeaders(Source, (PromoteAllScalars=true)), #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",(("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))), #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Category", 1, 1), #"Reordered Columns" = Table.ReorderColumns(#"Added Index",("Category", "Category Description", "Dept. Total", "Q1", "Q2", "Q3", "Q4", "Employee 1", "Q1_1", "Q2_2", "Q3_3", "Q4_4", "Employee 2", "Q1_5", "Q2_6", "Q3_7", "Q4_8", "Employee 3", "Q1_9", "Q2_10", "Q3_11", "Q4_12", "Employee 4", "Q1_13", "Q2_14", "Q3_15", "Q4_16")), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Reordered Columns", ("Category", "Category Description"), "Attribute", "Value"), #"Extracted Text Before Delimiter" = Table.TransformColumns(#"Unpivoted Other Columns", (("Attribute", each Text.BeforeDelimiter(_, "_"), type text))), #"Added Conditional Column" = Table.AddColumn(#"Extracted Text Before Delimiter", "Employee Name", each if not Text.StartsWith((Attribute), "Q") then (Attribute) else null), #"Filled Down" = Table.FillDown(#"Added Conditional Column",("Employee Name")), #"Filtered Rows" = Table.SelectRows(#"Filled Down", each ((Attribute) = "Q1" or (Attribute) = "Q2" or (Attribute) = "Q3" or (Attribute) = "Q4") and ((Employee Name) "Dept. Total")), #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"(Attribute)), "Attribute", "Value", List.Sum), #"Inserted Sum" = Table.AddColumn(#"Pivoted Column", "Total", each List.Sum(((Q1), (Q2), (Q3), (Q4))), type number), #"Sorted Rows" = Table.Sort(#"Inserted Sum",(("Employee Name", Order.Ascending), ("Category", Order.Ascending))), #"Removed Columns" = Table.RemoveColumns(#"Sorted Rows",("Category")) in #"Removed Columns"

Naaske Podcast 2316 väljakutse avalehele.

Lugege selle sarja järgmist artiklit: Exceli MVP-d ründavad Power Query'is andmete puhastamise probleemi.

Huvitavad Artiklid...