Как рассчитать первое вхождение данного дня недели в следующем году в 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)

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

В примере @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

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

Другие вопросы по тегам