Минимальный рабочий пример.
Предположим, что цены указаны в 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()
.