Сортирање ставки поруџбина - Екцел савети

Преглед садржаја

Белешка

Ово је један од низа чланака који детаљно описују решења послана за изазов Подцаст 2316.

Један од проблема са мојим решењем је тај што коначни редослед категорија није нужно одговарао оригиналном низу колона. Схватила сам то на самом крају свог видеа, а како то није било посебно важно, нисам се бринула због тога.

Међутим, Јосх Јохнсон је послао решење које је то решило. Када је Јосх рекао да користи индексну колону, претпоставио сам да је то више пута индекс и модул у Повер Куери-у: Бројне групе записа од 1 до 5. Али Јосх-ова употреба била је потпуно другачија.

Напомена: Екцел МВП Јохн МацДоугалл је такође користио ову методу, али је индексну колону повезао на крај описа категорије. Погледајте Јохнов видео овде: хттпс://ввв.иоутубе.цом/ватцх?в=Дкмб6СЕЈДКСИ и прочитајте више о његовом коду овде: Екцел МВП-ови нападају проблем чишћења података у Повер Куери-у.

Почетком процеса, када је Јосх још увек имао само шест записа, додао је индекс почев од 1. Јосх је кликнуо на траку са формулама и колону Индекс преименовао у Категорија.

Промењено име у траци са формулама

Колона Категорија била је нова последња колона. Користио је Премештање, да би Почетак преместио да буде први:

Пређите на почетак

После овога се дешава пуно других корака. То су кораци који су иновативни, али су до сада углавном обрађивани у осталим чланцима. Након многих таквих корака, почињао сам да мислим да су категорије бројеви од 1 до 6 само грешка. Мислио сам да ће их Јосх можда избрисати без употребе.

Јосх Унпивотс, затим условни ступац, затим попуните доле, па пивоти, додаје зброј. Чини се да никада не користи ту колону Категорија. После много корака, он је овде:

Додај укупно

Али онда у последњим корацима Јосх сортира податке према имену запосленог, а затим према категорији!

Поредај по имену запосленог него категорији

У овом тренутку може да избрише колону Категорија. Коначна разлика: ПТО долази пре Пројекта А, баш као што је био у оригиналним колонама. То је леп додир.

Такође ћу истаћи да је Јосх послао видео снимак како пролази кроз ове кораке. Свака част Јосх-у за коришћење пречица на тастатури унутар Повер Куери-а!

Пречице на тастатури

Ево Јосх-овог кода:

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"

Вратите се на главну страницу за изазов Подцаст 2316.

Прочитајте следећи чланак из ове серије: Екцел МВП-ови нападају проблем чишћења података у Повер Куери-у.

Занимљиви Чланци...