Как найти первую ячейку (или её значение), которая соответствует заданному условию?

Нужна функция, которая может искать выполнения некоторого условия и возвращать значение либо имя первой подходящей ячейки. Возможно, она есть в Excel "из коробки", просто я о ней не знаю.

Для примера пусть будет РПГ, в которой есть таблица уровней и требуемого для их достижения с самого начала игры опыта, причём нет явной линейной/геометрической прогрессии, чтобы найти ответ без поиска по таблице (пример набран из головы):
e8f1d64313e94c7088f77b8bdb413054.png
Нужно узнать уровень персонажа, если известен его текущий опыт.
Если персонаж получил новый уровень только что (2000 опыта на картинке), то формула была бы =ВПР(B11;$A$2:$B$9;2;ЛОЖЬ)
однако персонаж после получения уровня успел набрать некоторое количество опыта и ВПР в данном случае не справляется.

Более приближённый к жизни пример: есть список ёмкостей для жидкостей и некоторое количество жидкости, которая должна быть вся налита в одну из ёмкостей. Как найти самую маленькую ёмкость, которой будет достаточно?

UPD:
Справился сам, но решение мне кажется кривоватым.
1. Если опыт отсортирован по возрастанию то формула выдаст, в какой сверху ячейке она нашла то, что нужно. Условие для поиска - "<="&B11.
=СЧЁТЕСЛИ($A$2:$A$9;"<="&B11)
2. Зная номер ячейки делаем работу ВПР:
=ИНДЕКС($B$2:$B$9;СЧЁТЕСЛИ($A$2:$A$9;"<="&B11))
f9196aed08464f0bb32e041031347a88.png

В примере с ёмкостями при таком подходе нужно использовать "меньше" вместо "меньше или равно" и прибавлять 1.
  • Вопрос задан
  • 1181 просмотр
Решения вопроса 1
Sabin
@Sabin Автор вопроса
1. СЧЁТЕСЛИ выдаст, в какой сверху ячейке условие было нарушено - надо написать обратное условие.
В данном случае вместо больше меньше: "<="&B11.
=СЧЁТЕСЛИ($A$2:$A$9;"<="&B11)
2. Зная номер ячейки делаем работу ВПР:
=ИНДЕКС($B$2:$B$9;СЧЁТЕСЛИ($A$2:$A$9;"<="&B11))
f9196aed08464f0bb32e041031347a88.png

В примере с ёмкостями при таком подходе нужно использовать "меньше" вместо "меньше или равно" и прибавлять 1. Значения в столбце А обязательно должны быть отсортированы по возрастанию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы