Как рассчитать первое появление заданного дня недели в следующем году в Excel?

Как рассчитать первое появление заданного дня недели в следующем году в Excel?

Мне нужно вычислить первое появление в следующем году дня недели даты в ячейке A1. Например, если дата в ячейке A1 выпадает на четверг, вычислить первый четверг следующего года; если дата в ячейке A1 выпадает на понедельник, вычислить первый понедельник следующего года и т. д.

Как я могу это сделать?

решение1

В моей французской версии 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)

решение2

Мне нравится ответ @CmPi. Вот еще одно решение:

=DATE( 
   YEAR(DATE(YEAR(B1)+1,1,1)),  
   1,  
   MOD(7+WEEKDAY(B1)-WEEKDAY(DATE(YEAR(B1)+1,1,1)),7)+1
)

Вот проверка на работоспособность:

(Формат даты установлен на Длинный, регион США)

Скриншот проверки работоспособности из Excel

В примере @CmPi он находит первую дату следующего года и добавляет соответствующее количество дней от первой к экземпляру того же дня недели. В этом методе я просто устанавливаю следующий день в пределах той же даты.

решение3

Попробуй это

=CHOOSE(WEEKDAY(DATE(YEAR(A1)+1,MONTH(A1),DAY(A1))),"Sun","Mon","Tue","Wed","Thu","Fri","Sat")

ВЫБОР: выбирает день из массива дней недели (ДАТА: Вс, Пн, Вт и т. д.) ДЕНЬ НЕДЕЛИ: получает день недели как число, вычисленное с помощью DATE() ДАТА: добавляет год +1 к A1 и сохраняет месяц и день для A1 прежними, а также возвращает дату в A1 + 1 год.

Если вы хотите получить первый день следующего года в январе: 1 января, то замените месяц и день на 1.. ,MONTH(A1),DAY(A1)=>,1,1

Надеюсь это поможет.

Связанный контент