Як розрахувати наступний понеділок після зазначеної дати?


11

Я шукаю формулу, яка може переглянути значення комірки, яка містить дату, і повернути перший понеділок, який відбудеться після цієї дати.

Приклади (формат MM / dd / yyyy):

10/22/2013 (Tuesday) would return 10/28/2013 (Monday)
10/28/2013 (Monday)  would return 10/28/2013 (Monday)

Відповіді:


15

Нехай 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))

3

Трохи більш елегантним рішенням є зміщення кожного введення на відповідну кількість днів.

=B2+MOD(9-WEEKDAY(B2),7)

Якщо ви хочете бути розумними, ТИЖДЕНЬ не потрібен, оскільки ми знаємо, що епоха припала на суботу (розрахуйте ТИЖДЕНЬ (0), щоб перевірити це)

=B2+MOD(9-B2,7)

1

Загальне та елегантне рішення, яке працює в будь-який день тижня (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, ...


0

Рішення Франка ідеально підходить для понеділка, але воно не буде працювати в інші дні (я протестував лише другу формулу). Однак наступна формула буде працювати в інші дні. Нехай 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))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.