
Мне нужно вычислить первое появление в следующем году дня недели даты в ячейке 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
)
Вот проверка на работоспособность:
(Формат даты установлен на Длинный, регион США)
В примере @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
Надеюсь это поможет.