Как рассчитать первое вхождение данного дня недели в следующем году в Excel?
Мне нужно вычислить первое вхождение в следующем году дня недели в ячейке A1. Например, если дата в ячейке A1 попадает в четверг, рассчитайте первый четверг следующего года; если дата в ячейке A1 выпадает на понедельник, вычислите первый понедельник следующего года и т. д.
Как я могу это сделать?
3 ответа
В моей французской версии Excel:
=DATE(ANNEE(A1)+1;1;1)+MOD(7+JOURSEM(A1)-JOURSEM(DATE(ANNEE(A1)+1;1;1));7)
Который, кажется, в английской версии:
=DATE(YEAR(A1)+1,1,1)+MOD(7+WEEKDAY(A1)-WEEKDAY(DATE(YEAR(A1)+1,1,1)),7)
Мне нравится ответ @CmPi. Вот еще одно решение:
=DATE(
YEAR(DATE(YEAR(B1)+1,1,1)),
1,
MOD(7+WEEKDAY(B1)-WEEKDAY(DATE(YEAR(B1)+1,1,1)),7)+1
)
Вот проверка работоспособности:
(Формат даты установлен на Long, США Locale)
В примере @CmPi он находит первую дату следующего года и добавляет соответствующее количество дней от первого до экземпляра того же дня недели. В этом методе я просто установил следующий день в пределах той же даты.
Попробуй это
=CHOOSE(WEEKDAY(DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))),"Sun","Mon","Tue","Wed","Thu","Fri","Sat")
ВЫБРАТЬ: Выбирает день из массива дня недели (ДАТА: Солнце, Пн, Вт и т. Д.). НЕДЕЛЯ: Получает день недели в виде числа, рассчитанного по ДАТА (). ДАТА: Добавляет год +1, к А1 и сохраняет месяц и день тот же для A1, и возвращает дату в A1 + 1 год.
Если вы хотите получить первый день следующего года в январе: 1 января, то замените месяц и день на 1.. ,MONTH(A1),DAY(A1)
=> ,1,1
Надеюсь это поможет.