У меня есть таблица Excel, в которой указана наша текущая дата сдачи. Даты сдачи — это один и тот же день каждого месяца (9/2, 10/2 и т. д.), и я хочу, чтобы дата сдачи обновлялась после того, как прошла старая дата, чтобы мне не приходилось делать это вручную или иметь столбец для каждого месяца. Я уверен, что есть формула, чтобы это сделать, но ничего не работает.
Формула на фото - это то, что у меня сейчас есть, и я не уверен, почему она не работает - хотя даже с этим, я думаю, у нас будут проблемы после того, как пройдет дедлайн в декабре. Есть идеи?
Ищем решение не на VBA.
решение1
Вам повезло, VBA не требуется. На самом деле, есть еще более простой подход, который не требует проверки IF:
=DATE(YEAR(NOW()),MONTH(NOW())+(DAY(NOW())>2),2)
Я жестко закодировал 2-й день месяца на основе вопроса, но его можно было бы получить из ячейки или извлечь из исходной даты сдачи.
Вместо проверки того, прошли ли вы целевой день месяца, здесь используется тот факт, что TRUE и FALSE рассматриваются как 1 и 0 соответственно. (DAY(NOW())>2)
будет либо истинным, либо ложным, поэтому это будет рассматриваться так, как 1
если бы вы прошли 2-й день месяца или 0
нет. Если вы прошли этот день, он добавляется 1
к месяцу.
Excel достаточно умен, чтобы обработать месяц "13", если это происходит в декабре. Он переходит в январь следующего года.