V
V
Vladislav2017-06-10 14:11:49
excel
Vladislav, 2017-06-10 14:11:49

How to find the first cell (or its value) that matches a given condition?

Нужна функция, которая может искать выполнения некоторого условия и возвращать значение либо имя первой подходящей ячейки. Возможно, она есть в Excel "из коробки", просто я о ней не знаю.
Для примера пусть будет РПГ, в которой есть таблица уровней и требуемого для их достижения с самого начала игры опыта, причём нет явной линейной/геометрической прогрессии, чтобы найти ответ без поиска по таблице (пример набран из головы):
e8f1d64313e94c7088f77b8bdb413054.png
Нужно узнать уровень персонажа, если известен его текущий опыт.
Если персонаж получил новый уровень только что (2000 опыта на картинке), то формула была бы =ВПР(B11;$A$2:$B$9;2;ЛОЖЬ)
однако персонаж после получения уровня успел набрать некоторое количество опыта и ВПР в данном случае не справляется.
A closer to life example: there is a list of containers for liquids and a certain amount of liquid, which must be completely poured into one of the containers. How to find the smallest capacity that will be enough?
UPD:
I did it myself, but the solution seems crooked to me.
1. If the experience is sorted in ascending order, then the formula will give out in which top cell it found what it needed. The search condition is "<="&B11 .
=СЧЁТЕСЛИ($A$2:$A$9;"<="&B11)
2. Knowing the cell number, we do the work of VLOOKUP:
=ИНДЕКС($B$2:$B$9;СЧЁТЕСЛИ($A$2:$A$9;"<="&B11))
f9196aed08464f0bb32e041031347a88.png
In the example with containers, with this approach, you need to use "less than" instead of "less than or equal to" and add 1.

Answer the question

In order to leave comments, you need to log in

1 answer(s)
V
Vladislav, 2017-06-14
@Sabin

1. COUNTIF will give out in which cell the condition was violated from above - you need to write the opposite condition.
In this case, instead of greater than less: "<="&B11.
2. Knowing the cell number, we do the work of VLOOKUP:
In the example with containers, with this approach, you need to use "less than" instead of "less than or equal to" and add 1. The values ​​in column A must be sorted in ascending order.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question