Excel: для A1 найдите самую высокую последующую ячейку перед ячейкой <a1 is="" found="" <="" div=""> <div class="body"> <p>У меня есть столбец колебания цен с течением времени в столбце A, скажем, цена конкретной акции для аргументов.</p> <p>В столбце BI нужно узнать, насколько высоко поднялась цена с того момента, пока она не стала меньше текущей суммы.</p> <p>Поэтому я думаю, что мне нужна формула, которая перебирает все последующие ячейки, пока не будет найдена ячейка &lt;A1, из всех ячеек в этом диапазоне выведите наибольшую.</p> <p>Любая помощь будет принята с благодарностью! Спасибо :)</p> </div> </a1>

318
Sam J

У меня есть столбец колебания цен с течением времени в столбце A, скажем, цена конкретной акции для аргументов.

В столбце BI нужно узнать, насколько высоко поднялась цена с того момента, пока она не стала меньше текущей суммы.

Поэтому я думаю, что мне нужна формула, которая перебирает все последующие ячейки, пока не будет найдена ячейка <A1, из всех ячеек в этом диапазоне выведите наибольшую.

Любая помощь будет принята с благодарностью! Спасибо :)

0
Пожалуйста, скопируйте некоторые данные и ожидаемый результат и поместите их в исходный вопрос, используя редактирование. Scott Craner 7 лет назад 1
Таким образом, если бы у вас были значения 3, 5, 4, 5, 4, 6, 2, 8, 7, 1 и ваше значение «триггера» было 8, ответ был бы 6? Dave 7 лет назад 0

1 ответ на вопрос

0
g.kov

Минимальный рабочий пример. Предположим, что цены в C5:C23, то эта формула массива в D5:

=MAX(INDIRECT("C"&ROW()&":C"&(ROW()+MATCH(-1,SIGN(C5:$C$23-C5),FALSE)-2))) 

Скопированы результаты в:

enter image description here

Обратите внимание, что #N/Aошибки значимы, они сигнализируют о том, что ниже нет цены ниже, чем в столбце Cслева от ячейки с #N/A.

** Редактировать ** Комментарии

enter image description here

Ключевой момент - найти строку с ценой, которая меньше, чем в текущей строке ( 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().

Brilliant! Спасибо. Я просто пытаюсь обдумать тонкости вашего ответа, но вижу, что он делает то, что я хочу. Sam J 7 лет назад 0

Похожие вопросы