Первая проблема связана с тем, что оператор MATCH
будет возвращать «# N/A», если он не найдет значение. Поэтому оператор INDEX
не будет знать, что с этим делать, поэтому вам придется управлять этим делом. Заявление IF
должно быть хорошо, чтобы иметь дело с этим.
= ЕСЛИ (А1> A13,0, MATCH (А13, А1: А11))
В приведенном выше примере, если у вас есть значение, которое меньше первого числа вашего массива, он вернет 0. Затем вы должны подключить это к выражению INDEX
.
Далее вам нужно управлять тем, что вы хотите округлить вверх, а не вниз. Это также легко можно сделать с помощью оператора IF
. Вы можете просто сравнить число в столбце A с целевой ячейкой, чтобы увидеть, совпадают ли они, если нет, то вы увеличиваете свою строку на 1. Вам просто нужно вложить операторы IF
друг в друга с некоторой помощью из оператора INDEX
.
= IF(ИНДЕКС (A1:A11, IF(A1> A13,0, MATCH (A13, A1:A11)))= A13, IF(A1> A13,0, MATCH (A13, A1:A11)), IF( А1> A13,0, MATCH (А13, А1: А11))+1)
Так что это в основном сделает так, что теперь оно округляется вверх, а не вниз.
Последний шаг - сделать так, чтобы вы получили значение 2-го столбца вместо первого. Вы правильно сделали с оператором INDEX
, нам просто нужно собрать их все вместе.
= INDEX(B1:B11, IF(INDEX(A1:A11, IF(A1> A13,0, MATCH(A13, A1:A11))) = A13, IF(A1> A13,0, MATCH(A13, A1:A11)), IF(A1> A13,0, MATCH(A13, A1:A11))+1))
И это дает именно те результаты, которые вы хотели получить в своем вопросе. Извините за длинную формулу, но вы хотели что-то более или менее сложное.