1

Из следующей таблицы:

ID     Status
001    Done
002    Done
003    Done
004    Error
005    Done
006    Error
007    Done
008    Done
009    Error

Я хочу извлечь список / строку всех идентификаторов с ошибкой. Другими словами, ячейка, которая выглядит так:

004, 006, 009

Заранее спасибо.

2 ответа2

0

Вы можете использовать бесплатный Microsoft Power Add-In Power Query (из Excel 2010) для фильтрации и агрегирования ваших идентификаторов с ошибкой.

Вы можете преобразовать свои данные через пользовательский интерфейс. Однако вам нужно будет изменить некоторые шаги непосредственно в расширенном редакторе.

Вот два сценария (вы можете вставить его в расширенный редактор. Убедитесь, что ваш источник таблицы называется "Table1"):

1-й даст вам этот вывод: 004, 006, 009

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Status", type text}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Status] = "Error")),
    #"Removed Other Columns" = Table.SelectColumns(#"Filtered Rows",{"ID"}),
    #"Transposed Table" = Table.Transpose(#"Removed Other Columns"),
    #"List ID" = Table.ToList(#"Transposed Table", Combiner.CombineTextByDelimiter(", "))
in
    #"List ID"

Второй разделит четные и неровные идентификаторы на две строки:
009
004, 006

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Status", type text}}),
    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Status] = "Error")),
    #"Added Custom" = Table.AddColumn(#"Filtered Rows", "IsEven", each if Number.IsEven(Number.From([ID])) = true then "even" else "uneven"),

    #"Filtered Even" = Table.SelectRows(#"Added Custom", each ([IsEven] = "even")),
    #"Removed Other Columns Even" = Table.SelectColumns(#"Filtered Even",{"ID"}),
    #"Transposed Table Even" = Table.Transpose(#"Removed Other Columns Even"),
    #"List Even" = Table.ToList(#"Transposed Table Even", Combiner.CombineTextByDelimiter(", ")),
    #"Table Even" =Table.FromValue(#"List Even"),

    #"Filtered Uneven" = Table.SelectRows(#"Added Custom", each ([IsEven] = "uneven")),
    #"Removed Other Columns Uneven" = Table.SelectColumns(#"Filtered Uneven",{"ID"}),
    #"Transposed Table Uneven" = Table.Transpose(#"Removed Other Columns Uneven"),
    #"List Uneven" = Table.ToList(#"Transposed Table Uneven", Combiner.CombineTextByDelimiter(", ")),
    #"Table Uneven" =Table.FromValue(#"List Uneven"),

    #"Appended Query" = Table.Combine({#"Table Uneven", #"Table Even"})
in
    #"Appended Query"

Попробуйте Power Query! Это IMO - самая мощная инновация в Excel за последние пару лет (помимо Power Pivot).

0

Хорошо, я понял, как создать столбец всех правильных ответов: вставьте это в C1:

= ЕСЛИОШИБКА (ИНДЕКС (А $ 2:$ 10, МАЛЫЙ (ЕСЛИ ($ B $ 2:$ B $ 10 = "Ошибка", ROW (А $ 2:$ 10)-строка (А $ 2)+1), ЧСТРОК (A $ 2:A2))), "")

Затем перетащите вниз до C10, чтобы увидеть все результаты, т.е.

3
6
9

Это не соответствует результату, но для меня этого пока достаточно.

Тем не менее, я не могу работать, как сделать два условия, например, ячейки в столбце B соответствуют "Ошибка" и значения в столбце A являются четными числами - есть идеи?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .