отсортированный
Самая простая формула для случая, когда столбец A
отсортирован в порядке возрастания:
Введите следующую формулу C1
и ctrl-enter / copy-paste / fill-down / auto-fill в оставшуюся часть столбца таблицы:
=INDEX(A:A,1+MATCH(B1,A:A,1))
Объяснение:
1
В качестве третьего аргумента MATCH()
означает, что он находит наибольшее значение, которое меньше или равно первый аргумент. Добавление 1
к этому индексу приводит к индексу следующего более высокого числа. Затем INDEX()
функция извлекает номер.
Обратите внимание, что я добавил дополнительное значение в конце столбца A
. Это для особого случая, когда нет следующего более высокого значения.
несортированный
Для случая, когда столбец A
не отсортирован (также работает, если отсортирован), формула немного сложнее:
Массив введите ( Ctrl+ Shift+ Enter) следующую формулу в C1
и скопируйте-вставьте / заполните в оставшуюся часть столбца таблицы (не забудьте удалить {
и }
):
{=SMALL(IF($A$1:$A$6>B1,$A$1:$A$6),1)}
Объяснение:
Функция возвращает п - ю наименьшее значение массива, игнорируя логические значения . По умолчанию для третьего аргумента функции проверяются только значения, превышающие значение в столбце, что приводит к следующему более высокому значению.SMALL(array,n)
IF()
FALSE
B
Обратите внимание, что специальное завершающее значение для столбца A
не требуется, так как #NUM!
ошибка является результатом, если в столбце нет значений, A
превышающих значение в столбце B
.
Наконец, как указал авантюрин, существует альтернативная, аналогичная формула, которая работает независимо от сортировки (но с важным предостережением).
Для Excel 2016+:
=MINIFS($A$1:$A$6,$A$1:$A$6,">"&B1)
Это работает, потому что MINIFS()
функция отфильтровывает значения, которые не соответствуют критериям, перед извлечением минимального значения.
Для более ранних версий Excel:
{=MIN(IF($A$1:$A$6>B1,$A$1:$A$6))}
Это работает по той же причине, что и SMALL()
функция - она игнорирует логические значения, сгенерированные IF()
функцией.
Предостережение:
Как =MINIFS()
и {=MIN(IF())}
формулы не будут работать правильно, если ноль может быть правильным следующее более высокое значение, так как ноль и возвращается, когда нет нет рядом более высокое значение. (Это та же самая причина добавления дополнительного значения в конце столбца A
для первой формулы - эта формула также возвращает ноль, если нет более высоких значений.)