如何在特定日期过去后为其添加 1 个月?

如何在特定日期过去后为其添加 1 个月?

我有一张 Excel 表格,上面列出了我们当前的到期日。到期日是每个月的同一天(9/2、10/2 等),我希望到期日在旧日期过去后更新,这样我就不必手动执行此操作或为每个月设置一列。我确信有一个公式可以做到这一点,但什么都行不通。

图中所示的配方是我现在所用的,我不知道为什么它不起作用——尽管我认为在 12 月的预产期过后,我们也会遇到问题。有什么想法吗?

寻找非 VBA 解决方案。

到期日电子表格

答案1

您很幸运,不需要 VBA。事实上,还有一种更简单的方法,不需要 IF 测试:

=DATE(YEAR(NOW()),MONTH(NOW())+(DAY(NOW())>2),2)

根据问题,我对该月的第二天进行了硬编码,但可以从单元格中检索或从原始截止日期中提取。

这与测试您是否已经过了当月的目标日期不同,而是利用了 TRUE 和 FALSE 分别被视为 1 和 0 的事实。 (DAY(NOW())>2)将为真或假,因此它将被视为1您是否已经过了当月的第二天,或者0您是否还没有过了。如果您已经过了那一天,它将添加1到月份中。

如果这种情况发生在 12 月,Excel 会非常智能地处理月份“13”。它会转到下一年 1 月。

相关内容