3

У меня есть следующая формула,

=WORKDAY(TODAY(),-2)

Который достанется мне 30 января.

Могу ли я получить 30 января, не ставя -2 в этой формуле? Я хочу, чтобы он по формуле всегда получал предыдущую дату среды, но я вручную просто вычитаю текущий рабочий день, чтобы получить предыдущую среду.

2 ответа2

8

Как насчет:

=TODAY() - MOD(TODAY(), 7) + 4

Это значит, получить первый день текущей недели (суббота), затем добавить 4 = среда (опционально -7 за предыдущую неделю).

Если вы хотите предыдущую неделю (если вы все еще в воскресенье или понедельник), используйте if для MOD(TODAY(), 7)

1

Для справки, ранее принятый ответ неправильно выводит будущую дату для некоторых сценариев

Эта формула выводит предыдущую среду.

=TODAY()-MOD(WEEKDAY(TODAY())+2,7)-1

Если сегодня среда, она также выводит предыдущую среду.

MOD(..., 7) всегда возвращает значение от 0 до 6.

Таким образом, -MOD(...)-1 всегда вычитает значение от 1 до 7 (дней) из TODAY() .

(Вы можете настроить значение +2 в формуле, чтобы получить разные дни недели)


Пример:

  • Сегодня 2019-2-25 (Mon) , выходы 2019-2-20 (Wed)
  • Сегодня 2019-2-26 (Tue) , выходы 2019-2-20 (Wed)
  • Сегодня 2019-2-27 (Wed) , выходы 2019-2-20 (Wed)
  • Сегодня 2019-2-28 (Thu) , выходы 2019-2-27 (Wed)

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