1

В моем примере значения и даты перечислены в разных столбцах. Кроме того, я пытаюсь получить результат, показывающий максимальное значение между фактическими датами (а не датами, которые указаны в ячейках).

Например, у меня есть даты в столбце AC и цены на акции в столбце AG. У меня есть столбец SU, отслеживающий конечную дату (которая остается неизменной на 10 лет раньше даты в текущем столбце AC). Столбец SV это где у меня есть формула. Формула для SV17249:

=MAX(IF((AC14739:AC17249<=SU17249)*(AC14739:AC17249>=AC14739),AG14739:AG17249,""))

Я выбрал диапазон AC14739:AC17249, потому что он равен приблизительному количеству годовых торговых дней (x10) в течение 10-летнего периода (2510). Тем не менее, я пытаюсь найти максимальное значение между двумя датами, которые находятся на расстоянии ровно 10 лет (например, с 1 января 2000 года по 1 января 2010 года). Но есть некоторые годы, когда торговых дней больше или меньше, чем у других, и это отбрасывает фиксированный диапазон 2510, который я ввел в формулу.

Есть ли способ получить указанную выше формулу для получения максимальной цены акций в AG между фактической датой в ячейке AC17249 и датой ровно за 10 лет до AC17249?

1 ответ1

0

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

  • Похоже, у вас есть тонна данных, поэтому это может ускорить процесс, если вы ограничите оценочный диапазон. Если в 10 лет примерно 2510 строк, округлите до числа, которое гарантированно включает 10 лет, например 2600 строк. Таким образом, оцененный диапазон для данной строки заканчивается в данной строке и включает 2600 предыдущих строк.

  • Я полагаю, что примерно за один день 10 календарных лет будут включать 3652 дня. Эта дата начала календаря не обязательно будет торговым днем, поэтому нам нужно найти первый торговый день после этой календарной даты (вы не хотите дважды считать даты окончания; ваш диапазон включает дату окончания, поэтому 10 лет перед этим фактически будет дата окончания предыдущего периода).

Я буду основывать свой пример на дате окончания в вашем вопросе, которая содержится в AC17249. Это позволило бы связать начало диапазона оценки с AC14649. Если вы жестко закодируете диапазоны как относительную адресацию, вы сможете скопировать формулу и правильно настроить ее для других строк. Трудно проверить формулы без вашей массивной таблицы, но я считаю, что это должно работать:

{=MAX(IF((AC14649:AC17249>AC17249-3652),AG14649:AG17249,0))}

Это формула массива, поэтому необходимо подтвердить, нажав Ctrl - Shift - Enter, а не Enter.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .