Вычислить диапазон и найти в нем максимум

Рейтинг: 0Ответов: 1Опубликовано: 24.06.2023

Помогите составить форумулу. Есть 4 колонки с ценами биржевого актива. При условии, что E3>B3, надо найти максимальное значение из колонки High, но в диапазоне, начинающимся с данной строки и заканчивающимся перед строкой, после которой значение из колонки Low станет равным или меньше значению B3.

Скрин таблицы

A B C D E F
1 Date Open High Low Close max
2 20.06.1983 169,13 170,1 168,59 169,02
3 21.06.1983 169,03 170,6 168,25 170,53
4 22.06.1983 170,53 171,6 170,42 170,99
5 23.06.1983 170,99 171 170,13 170,57
6 24.06.1983 170,57 170,69 170,03 170,41
7 27.06.1983 170,4 170,46 168,32 168,46
8 28.06.1983 168,45 168,81 165,67 165,68
9 29.06.1983 165,78 166,64 165,43 166,64
10 30.06.1983 167,64 167,64 167,64 167,64
11 01.07.1983 168,11 168,64 167,77 168,64
12 05.07.1983 166,55 168,64 167,77 168,64
13 06.07.1983 166,71 168,88 166,49 168,48
14 07.07.1983 168,48 169,15 167,08 167,56

Т.е. грубо говоря, нужно знать, как высоко цена уходила от цены открытия, пока вновь к ней не вернулась. В данном случае ответ будет 171.6.

файл

Ответы

▲ 1Принят
=ЕСЛИ(E2>B2;ЕСЛИ(СЧЁТЕСЛИ(D3:$D$20;"<="&B2);МАКС(C2:ИНДЕКС($C$1:$C$20;МИН(ЕСЛИ(D3:$D$20<=B2;СТРОКА(D3:$D$20)-1)))););)

Формула массива, ввод тремя клавишами - Ctrl+Shift+Enter.Если меньшее значение не найдено, формула вернет ноль. Если в этом случае вместо нуля надо получить максимум:

=ЕСЛИ(E2>B2;МАКС(C2:ЕСЛИ(СЧЁТЕСЛИ(D3:$D$20;"<="&B2);ИНДЕКС($C$1:$C$20;МИН(ЕСЛИ(D3:$D$20<=B2;СТРОКА(D3:$D$20)-1)));$C$20));)