Примітка
Це одна із серії статей, що детально описують рішення, спрямовані на виклик Podcast 2316.
У своєму рішенні щодо переробки даних я хотів побачити, чи містить стовпець ім’я працівника або таке значення, як Q1, Q2, Q3, Q4. У своєму рішенні я припустив, що ні в кого не буде імені з 2 символами, і тому я додав стовпець для обчислення довжини тексту в колонці.
Джейсон М уникнув необхідності в стовпці Довжина, додавши три речення Else If до своєї Умовної колонки.
![](https://cdn.wiki-base.com/5869519/power_query_using_else_if_clauses_in_conditional_columns_-_excel_tips_2.png.webp)
Умовне обчислення для працівника шукає для кварталу значення Null: якщо (Quarter) = null, тоді (Category Description) else null.
![](https://cdn.wiki-base.com/5869519/power_query_using_else_if_clauses_in_conditional_columns_-_excel_tips_3.png.webp)
Ось код М Джейсона:
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"
Ondřej Malinský надіслав рішення, яке також використовувало кілька речень Else If:
![](https://cdn.wiki-base.com/5869519/power_query_using_else_if_clauses_in_conditional_columns_-_excel_tips_4.png.webp)
Метью Вікл надіслав рішення із ще одним способом визначити квартали. Його метод перевіряє, чи текст починається з Q, а друга цифра менше 5:
if Text.Start((Attribute),1)="Q" and Number.From(Text.Middle((Attribute),1,1))<5 then Text.Start((Attribute),2) else "Total")
![](https://cdn.wiki-base.com/5869519/power_query_using_else_if_clauses_in_conditional_columns_-_excel_tips_5.png.webp)
Крістіан Нойбергер використовував цю формулу, щоб отримати Ім'я працівника, Заповнене, а потім відфільтрований стовпець 1, щоб включити лише Q1, Q2, Q3 або Q4. Оз Ду Солей також використовував цей метод.
![](https://cdn.wiki-base.com/5869519/power_query_using_else_if_clauses_in_conditional_columns_-_excel_tips_6.png.webp)
Excel MVP Кен Пулс, ймовірно, виграє своєю формулою. Шукається підкреслення, щоб знати, чи це не ім’я працівника.
Перегляньте повне рішення Кена в програмах Excel MVPs Attack the Data Cleansing Problem у Power Query.
![](https://cdn.wiki-base.com/5869519/power_query_using_else_if_clauses_in_conditional_columns_-_excel_tips_7.png.webp)
Поверніться на головну сторінку завдання Podcast 2316.
Прочитайте наступну статтю з цієї серії: Power Query: Робота з кількома однаковими заголовками.