У меня есть блок данных, который представляет шаги в процессе и возможные ошибки:

ProcessStep   Status
FeesPaid      OK
FormRecvd     OK
RoleAssigned  OK
CheckedIn     Not Checked In.
ReadyToStart  Not Ready for Start

Я хочу найти первый статус, который не "ОК".

Я попытался это:

=Match("<>""OK""", StatusRange, 0)
который должен вернуть индекс первого элемента в диапазоне НЕ-РАВНО (<>) в "ОК"
Но это не работает, вместо этого возвращается #N/A

Я ожидаю, что он вернет 4 (индекс # 4, в индексе на основе 1, представляющий, что CheckedIn является первым не OK элементом)

Есть идеи, как это сделать?

2 ответа2

2

Предположим, что ячейки для проверки находятся в A1:A10. Тогда достаточно использовать следующую формулу:

=MATCH(0,IF(A1:A10="OK",1,0),0)

быть введенным с помощью Ctrl+Shift+Enter

0

Есть по крайней мере один простой способ сделать это, если вы не возражаете установить другой блок (возможно, скрытый) ячеек где-нибудь. Например, вы можете добавить столбец формулы следующим образом, который проверяет, равна ли ячейка слева от "OK":

|   | A              | B        | C        |
|---+----------------+----------+----------|
| 1 | "ProcessStep"  | "Status" |          |
| 2 | "FeesPaid"     | "OK"     | =B2="OK" |
| 3 | "FormRecvd"    | "OK"     | =B3="OK" |
| 4 | "RoleAssigned" | "OK"     | =B4="OK" |
| 5 | "CheckedIn"    | "OK"     | =B5="OK" |
| 6 | "ReadyToStart" | "OK"     | =B6="OK" |

Теперь вы можете использовать =MATCH(FALSE,C2:C6,0) чтобы найти строку, содержащую первый не-OK статус.

РЕДАКТИРОВАТЬ: у Toc есть лучшее решение.

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