Excel: для A1 найдите самую высокую последующую ячейку до того, как будет найдена ячейка <A1
У меня есть столбец колебания цен с течением времени в столбце A, скажем, цена конкретной акции для аргументов.
В столбце B I нужно узнать, насколько высоко поднялась цена с того момента, пока она не стала меньше текущей суммы.
Поэтому я думаю, что мне нужна формула, которая перебирает все последующие ячейки, пока не будет найдена ячейка Любая помощь будет принята с благодарностью! Спасибо:)
1 ответ
Минимальный рабочий пример. Предположим, что цены в 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()
,