Повер Куери: Коришћење осталих клаузула у условним колонама - Екцел савети

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

Белешка

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

У свом решењу за преобликовање података, желео сам начин да видим да ли колона садржи име запосленог или вредност као што су К1, К2, К3, К4. У мом решењу претпоставио сам да нико неће имати име са 2 знака, па сам додао колону за израчунавање дужине текста у колони.

Јасон М је избегао потребу за колоном Ленгтх додавањем три клаузуле Елсе Иф у своју условну колону.

Додајте условни ступац

Условни прорачун за запосленог тада тражи да четвртина буде нула: ако је (квартал) = нула, онда (опис категорије) елсе нула.

Условни прорачун

Ево Јасоновог М кода:

let Source = Excel.CurrentWorkbook()((Name="UglyData"))(Content), #"Transposed Table" = Table.Transpose(Source), #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", (PromoteAllScalars=true)), #"Added Conditional Column" = Table.AddColumn(#"Promoted Headers", "Quarter", each if (Category Description) = "Q1" then (Category Description) else if (Category Description) = "Q2" then (Category Description) else if (Category Description) = "Q3" then (Category Description) else if (Category Description) = "Q4" then (Category Description) else null), #"Added Conditional Column1" = Table.AddColumn(#"Added Conditional Column", "Employee", each if (Quarter) = null then (Category Description) else null), #"Filled Up" = Table.FillUp(#"Added Conditional Column1",("Quarter")), #"Filled Down" = Table.FillDown(#"Filled Up",("Employee")), #"Inserted Distinct Count" = Table.AddColumn(#"Filled Down", "Distinct Count", each List.NonNullCount(List.Distinct(((Category Description), (Employee)))), Int64.Type), #"Filtered Rows1" = Table.SelectRows(#"Inserted Distinct Count", each (Distinct Count) 1), #"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows1",("Distinct Count")), #"Removed Columns" = Table.RemoveColumns(#"Removed Columns1",("Category Description")), #"Filtered Rows" = Table.SelectRows(#"Removed Columns", each ((Employee) "Dept. Total")), #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Filtered Rows", ("Quarter", "Employee"), "Attribute", "Value"), #"Renamed Columns" = Table.RenameColumns(#"Unpivoted Other Columns",(("Attribute", "Category Description"))), #"Pivoted Column" = Table.Pivot(#"Renamed Columns", List.Distinct(#"Renamed Columns"(Quarter)), "Quarter", "Value"), #"Inserted Sum" = Table.AddColumn(#"Pivoted Column", "Total", each List.Sum(((Q1), (Q2), (Q3), (Q4))), type number), #"Reordered Columns" = Table.ReorderColumns(#"Inserted Sum",("Category Description", "Employee", "Q1", "Q2", "Q3", "Q4", "Total")) in #"Reordered Columns"

Ондреј Малинскы послао је решење које је такође користило више клаузула Елсе Иф:

Вишеструко друго-ако

Маттхев Викле је послао решење са још једним начином да се идентификују четврти. Његов метод проверава да ли текст почиње са К и да ли је друга цифра мања од 5:

if Text.Start((Attribute),1)="Q" and Number.From(Text.Middle((Attribute),1,1))<5 then Text.Start((Attribute),2) else "Total")

Идентификујте четвртине

Цхристиан Неубергер је користио ову формулу да би добио име запосленог, попунио га, а затим филтрирао колону 1 да би обухватио само К1, К2, К3 или К4. Оз Ду Солеил се такође користио овом методом.

Филтрирана колона

Екцел МВП Кен Пулс вероватно побеђује са својом формулом. Тражи се подвлака да би се знало да ли ово није име запосленог.

Погледајте цело Кеново решење у Екцел МВП-овима Аттацк тхе Дата Цлеансинг Проблем у Повер Куери-у.

Тражите доњу црту

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

Прочитајте следећи чланак из ове серије: Повер Куери: Суочавање са више идентичних заглавља.

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