Відповіді:
Нехай B2
клітина, яка містить дату.
=IF(WEEKDAY(B2)=2, B2, IF(WEEKDAY(B2)=1,B2+1, B2+9-WEEKDAY(B2)))
або
=IF(WEEKDAY(B2,3)=0, B2, B2+7-WEEKDAY(B2,3))
Трохи більш елегантним рішенням є зміщення кожного введення на відповідну кількість днів.
=B2+MOD(9-WEEKDAY(B2),7)
Якщо ви хочете бути розумними, ТИЖДЕНЬ не потрібен, оскільки ми знаємо, що епоха припала на суботу (розрахуйте ТИЖДЕНЬ (0), щоб перевірити це)
=B2+MOD(9-B2,7)
Загальне та елегантне рішення, яке працює в будь-який день тижня (N-день):
Клітинка B2
: дата зміни до наступного N-дня тижня; Клітинка B3
: наступний N-день тижня: пн = 1, вт = 2, ...;
=B2+MOD(B3-WEEKDAY(B2,2),7)
Для конкретного дня тижня, у цьому випадку понеділок (день = 1), формулу можна "твердо кодувати"
=B2+MOD(1-WEEKDAY(B2,2),7)
Зауважте, що встановивши 2-й параметр буднього дня на "2", weekday(B2,2)
це поверне день тижня, що відповідає бажаному N-дню, використаному у вищевказаній формулі (клітинка В1), тобто пн = 1, вт = 2, ...
Рішення Франка ідеально підходить для понеділка, але воно не буде працювати в інші дні (я протестував лише другу формулу). Однак наступна формула буде працювати в інші дні. Нехай B2 - дата, а B3 - день (B3 - від 1 до 7, де неділя - 1):
=IF(WEEKDAY(B2,1)<B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))
Примітка. Це з’явиться на наступний день, навіть якщо B2 - запитуваний день. Але наступна формула повернеться сьогодні, якщо B2 - запитуваний день:
=IF(WEEKDAY(B2,1)<=B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))