Минимальный рабочий пример. Предположим, что цены в C5:C23
, то эта формула массива в D5
:
=MAX(INDIRECT("C"&ROW()&":C"&(ROW()+MATCH(-1,SIGN(C5:$C$23-C5),FALSE)-2)))
Скопированы результаты в:
Обратите внимание, что #N/A
ошибки значимы, они сигнализируют о том, что ниже нет цены ниже, чем в столбце C
слева от ячейки с #N/A
.
** Редактировать ** Комментарии
Ключевой момент - найти строку с ценой, которая меньше, чем в текущей строке ( C5
). «Индекс выпадения» - количество строк от текущей строки до строки, где цена меньше. Функция
=MATCH(-1,SIGN(C5:$C$23-C5),FALSE)
возвращает номер строки (считая текущую строку как 1
), для которой он находит первое точное совпадение ( -1
) в массиве, который заполняется знаками различия между массивом цен ниже ( C5:$C$23
) и текущей ценой ( C5
).
Учитывая этот «индекс удаления», просто создать текстовую ссылку на диапазон перед удалением:
=("C"&ROW()&":C"&(ROW()+MATCH(-1,SIGN(C5:$C$23-C5),FALSE)-2))
а затем используйте INDIRECT()
для преобразования этого текста в ссылку и найти желаемый максимум с MAX()
.