Power Query: Використання інших речень, якщо в умовних стовпцях - Поради Excel

Зміст

Примітка

Це одна із серії статей, що детально описують рішення, спрямовані на виклик Podcast 2316.

У своєму рішенні щодо переробки даних я хотів побачити, чи містить стовпець ім’я працівника або таке значення, як Q1, Q2, Q3, Q4. У своєму рішенні я припустив, що ні в кого не буде імені з 2 символами, і тому я додав стовпець для обчислення довжини тексту в колонці.

Джейсон М уникнув необхідності в стовпці Довжина, додавши три речення Else If до своєї Умовної колонки.

Додайте умовний стовпець

Умовне обчислення для працівника шукає для кварталу значення Null: якщо (Quarter) = null, тоді (Category Description) else null.

Умовний розрахунок

Ось код М Джейсона:

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:

Кілька else-if

Метью Вікл надіслав рішення із ще одним способом визначити квартали. Його метод перевіряє, чи текст починається з Q, а друга цифра менше 5:

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

Визначте квартали

Крістіан Нойбергер використовував цю формулу, щоб отримати Ім'я працівника, Заповнене, а потім відфільтрований стовпець 1, щоб включити лише Q1, Q2, Q3 або Q4. Оз Ду Солей також використовував цей метод.

Відфільтрований стовпець

Excel MVP Кен Пулс, ймовірно, виграє своєю формулою. Шукається підкреслення, щоб знати, чи це не ім’я працівника.

Перегляньте повне рішення Кена в програмах Excel MVPs Attack the Data Cleansing Problem у Power Query.

Шукаю підкреслення

Поверніться на головну сторінку завдання Podcast 2316.

Прочитайте наступну статтю з цієї серії: Power Query: Робота з кількома однаковими заголовками.

Цікаві статті...