
内容:
公式
= EOMONTH(date, (DAY(date) > DAY(EOMONTH(date, 0)) / 2) - 1) + 1
通过单元格引用或硬编码值将任何日期输入此公式,此公式会将给定日期向上或向下舍入到最接近的月份的第一天。
解释
让我们使用以下示例将公式分解为单独的部分:


为了正确计算输入日期是应该向上舍入还是向下舍入,我们需要采取几个步骤。
首先,我们使用 DAY 函数拉出一天。 在本例中 5.
我们还需要知道本月有多少天。为此,我们使用 DAY 和 EOMONTH 函数。EOMONTH 从我们的日期开始返回该月的最后一天。在本例中为 4 年 30 月 2022 日。然后,我们使用 DAY 从该日期中提取 30,然后除以 2 以获得向上或向下舍入之间的截止日。
由于 30 / 2 = 15,并且我们的输入日期为 5,因此我们的日期小于 15,我们需要向下舍入。如果日期大于 15,则四舍五入。
红色括号之间的所有内容都返回 TRUE 或 FALSE 值,并且由于 TRUE = 1 和 FALSE = 0,因此我们从该值中减去 1 以给出 EOMONTH 函数的 month 参数。TRUE 将返回当月的最后一天(向上舍入),FALSE 将返回上个月的最后一天(向下舍入)。
所有这些,给了我们最近一个月的第一天的前一天,所以我们只需要在最后的公式上添加一个,给我们最近的一个月的第一天。
注意:
– 此公式将适用于所有月份,无论短期还是长期。即使是像二月这样的月份也会自动校正和调整闰年。
– 如果您正在使用的日期具有与之关联的时间戳,但不需要它们,我们可以通过添加 INT 函数来去除它们,如下所示:
= INT(EOMONTH(date, (DAY(date) > DAY(EOMONTH(date, 0)) / 2) - 1) + 1)
使用 INT 会将日期舍入到最接近的整数,从而删除 Excel 的日期保持约定中的时间数据(存储为小数)。
例
如何将日期舍入到最近月份的第一天
在此示例中,我们在 B 列中有一个日期列表,并希望将所有这些日期四舍五入到最接近的月份的第一天。
通过输入我们的公式:
= EOMONTH(B3, (DAY(B3) > DAY(EOMONTH(B3, 0)) / 2) - 1) + 1
在 C 列中的日期旁边,我们可以快速计算和舍入日期。可以在工作簿中的任何位置重复此过程。
评论0