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

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

3 ответа3

2

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

Мне нравится ответ @ 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 он находит первую дату следующего года и добавляет соответствующее количество дней от первого до экземпляра того же дня недели. В этом методе я просто установил следующий день в пределах той же даты.

-1

Попробуй это

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

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

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

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

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