Мне нужно получить следующую дату IMM после даты.

Даты IMM определяются как третья среда каждого марта / июня / сентября / декабря.

1 ответ1

0

Если у вас есть дата в A2 и вы хотите получить следующую дату IMM (основываясь на вашем определении дат IMM как третьей среды марта, июня, сентября и декабря), используйте эту формулу

=LOOKUP(A2,DATE(YEAR(A2),{0,3,6,9,12;3,6,9,12,15},22)-WEEKDAY(DATE(YEAR(A2),{0,3,6,9,12;3,6,9,12,15},4)))

форматировать ячейку результата в требуемом формате даты. Если A2 находится в дату IMM, формула дает вам следующую, это как это должно работать?

Объяснение:

Вы можете использовать эту формулу, чтобы получить первую среду в месяце

= ДАТА (у, м, 8)-WEEKDAY (ДАТА (у, м, 4))

на любой год = y и месяц = m по вашему выбору

4 можно изменить, чтобы указать разные дни недели, а 8 можно изменить на 22, чтобы получить 3-ю среду месяца. В вышеприведенной формуле эта концепция расширена для получения "таблицы" дат в формуле, в которой верхняя "строка" состоит из 3-х недель прошлого декабря, тогда как в текущем году в марте, июне, сентябре и декабре - строка 2 имеет текущий 4 года в году, а затем в марте следующего года. LOOKUP затем ищет A2 в этой таблице, сопоставляя его с последними 3-ю супружескими парами в верхнем ряду и возвращая следующие 3-е супружеские пары снизу.

Есть более короткий метод, который не использует функцию WEEKDAY, но использует FLOOR ......, но я обычно избегаю этого метода, потому что он опирается на использование одной конкретной системы дат (1900 или 1904), в то время как версия, которую я предоставил выше, работает в зависимости от того, что система дат, которую вы используете.

Эта версия работает только с датой 1900 года по умолчанию

=LOOKUP(A2,FLOOR(DATE(YEAR(A2),{0,3,6,9,12;3,6,9,12,15},17),7)+4)

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