EOMONTH 核心作用:返回指定日期偏移 N 个月后,对应月份的最后一天日期,自动处理大小月、平闰年,是会计月末结转、期末报表、账龄计算的专用函数。


一、标准语法

=EOMONTH(开始日期, 偏移月份数)
参数 规则说明
开始日期 必须是 Excel 可识别的合法日期(DATE函数生成、单元格真实日期、数组均可),不能是文本格式的日期
偏移月份数 整数:
• 正数 = 向后偏移(未来月份)
• 负数 = 向前偏移(过去月份)
• 0 = 当月月末
• 小数会直接截尾取整(如2.9按2个月计算,不四舍五入)

二、基础用法示例(单个日期)

1. 取当月月末

=EOMONTH(DATE(2026,1,15), 0)

返回:2026/1/31

2. 取上月月末(结转常用)

=EOMONTH(DATE(2026,1,15), -1)

返回:2025/12/31

3. 取下月月末

=EOMONTH(DATE(2026,1,15), 1)

返回:2026/2/28(2026平年,自动适配2月天数)


三、进阶批量用法(结合动态数组)

1. 生成2026年第1季度月末序列(对应你的练习题)

=EOMONTH(DATE(2026,1,1), SEQUENCE(3,1,0,1))
  • SEQUENCE(3,1,0,1) 生成 0、1、2 三个偏移量
  • 按回车自动溢出3行结果:2026/1/31、2026/2/28、2026/3/31

2. 生成全年12个月月末序列

=EOMONTH(DATE(2026,1,1), SEQUENCE(12,1,0,1))

3. 格式化输出标准日期文本

=TEXT(EOMONTH(DATE(2026,1,1), SEQUENCE(3,1,0,1)), "yyyy-mm-dd")

返回:2026-01-31、2026-02-28、2026-03-31


四、会计实战场景示例(贴合凭证明细表)

1. 筛选1月份所有记账凭证

=FILTER(凭证明细,
  (凭证明细[日期]>=DATE(2026,1,1))*
  (凭证明细[日期]<=EOMONTH(DATE(2026,1,1), 0)),
  "无当月凭证"
)

2. 批量计算应收账款账龄到期日(月结30天)

=EOMONTH(凭证明细[日期], 1)

含义:记账当月月末再加1个月,作为到期还款日。

3. 计算季度末计提基准日

=EOMONTH(DATE(2026,1,1), 2)

返回一季度末日期 2026/3/31,用于计提费用、结转损益。


五、避坑指南

  1. 返回值显示为一串数字 Excel 日期本质是序列号,选中单元格 →「开始」选项卡 → 数字格式改为「短日期」即可。

  2. 开始日期是文本格式会报错 如果是 "2026.01.15" 这类文本,先用 DATEVALUE 转换:

    =EOMONTH(DATEVALUE("2026-01-15"), 0)
    
  3. 空单元格会返回异常日期 引用整列时如果包含空白行,会返回 1899/12/31,建议配合 FILTER 先剔除空行。

  4. 月份数只认整数EOMONTH(日期, 2.9) 等价于 EOMONTH(日期, 2),不会四舍五入。

  5. 格式化后为文本,不能直接计算 用 TEXT 包裹后输出的是文本字符串,后续还要计算的话,用原始日期值计算,最后一步再格式化。


六、易混对比:EOMONTH vs EDATE

函数 核心逻辑 示例(开始日期:2026-01-15,偏移1个月) 典型场景
EDATE 对日偏移,几号进就几号出 返回 2026-02-15 账龄计算、到期日、对账日
EOMONTH 月末偏移,永远返回当月最后一天 返回 2026-02-28 月末结转、期末报表、计提基准