乐于分享
好东西不私藏

Excel月报神器:DATE函数如何实现月初、月末

Excel月报神器:DATE函数如何实现月初、月末

一、函数简介

DATE 是 Excel 中用于 生成标准日期 的核心函数。它接受三个参数——年、月、日,返回一个序列号形式的日期值。因为很多业务数据里只记录了“月份”文本(如 “1月”),直接用 DATE 配合文本函数即可把零散信息统一成日期,方便后续的统计、汇总和筛选。


二、语法结构

=DATE(year, month, day)
参数
说明
常见取值
year
四位年份,如 2023
2023
month
月份,1‑12(若为 0 或 13 等特殊值会进行跨年/跨月运算)
1‑12
day
日期,1‑31(若为 0,则返回前一个月的最后一天)
1‑31 或 0

小技巧:当 day 设为 0 时,DATE 会返回“上个月的最后一天”,这在求月末日时非常有用。


三、实战案例

数据已按行编号(从第 2 行起为第一行数据),列对应关系如下:

案例 1 把 “1月”“2月” 文本转换为标准日期(月初)

需求:在原有数据表旁新增一列 “月初日期”,把 “1月” 转为 2023/1/1,把 “2月” 转为 2023/2/1,以此类推。

公式

= DATE(2023, VALUE(LEFT(D2, LEN(D2)-1)), 1)

解析

步骤
作用
示例(“1月”)
LEFT(D2, LEN(D2)-1)
去掉最后一个字符 “月”,得到纯数字文本 “1”
LEFT("1月", 1) → "1"
VALUE(...)
将文本转为数值
VALUE("1") → 1
DATE(2023, …, 1)
组装成年‑月‑日格式,日的部分固定为 1(即每月 1 日)
DATE(2023,1,1) → 2023/1/1

将该公式向下填充,即可得到所有月份的月初日期。

效果


案例 2 快速得到每月最后一天的日期(月末)

需求:在案例 1 的基础上,再增加一列 “月末日期”,用于后续的累计统计。

公式

= DATE(2023, VALUE(LEFT(D2, LEN(D2)-1)) + 1, 0)

解析

  • • VALUE(LEFT(D2, LEN(D2)-1)) + 1:将月份加 1,得到下个月的数值。
  • • DAY 参数设为 0:相当于把日期调回上个月的最后一天,即本月的最后一天。

效果

这一列在后面的累计汇总中起到“截止日期”的作用。

四、常见错误与排查

错误表现
常见原因
解决办法
#VALUE!LEFT
 / LEN 返回的文本未通过 VALUE 转为数字,导致 DATE 的第二个参数是文本
确保使用 VALUE 将月份数字转为数值,或直接使用 MIDTEXT 系列函数
#NUM!
月份 < 1 或 > 12,或日期 < 0
检查月份是否在 1‑12 之间;DAY 为 0 时是合法用法,仅在超过 12 时会跨年
复制公式后结果错误
使用了相对引用导致列/行偏移
使用 绝对引用($E$2、$G$2)或在填充前锁定需要的范围
显示为序列号(如 44927)而非日期
单元格未设置日期格式
选中列 → 右键 → “设置单元格格式” → “日期”,选择合适的显示样式
累计结果不对
条件列(月末日期)未使用绝对引用导致范围错位
确认 SUMIFS 的条件范围是 $G$2:$G$21,而比较值是相对当前行的 G2

调试技巧:在公式前后加上 = 检查每一步的中间结果,例如在单元格输入 =VALUE(LEFT(D2,LEN(D2)-1)),确认是否能得到 1、2、3… 再继续拼接 DATE


五、使用小结

  1. 1.  是日期构造的基石,无论是从文本、月份数值还是通过数学运算得到“下个月第 0 天”,都能轻松搞定。
  2. 2. 文本转数值是处理中文月份(如 “1月”)的关键,LEFT+LEN 去掉 “月”,VALUE 完成转换。
  3. 3. 月末日期 (DATE(year, month+1, 0)) 能帮助我们快速定位统计区间,配合 SUMIFSCOUNTIFS 等条件聚合函数,可实现月报、季报自动累计。
  4. 4. 注意 单元格格式引用方式 与 参数范围,这三大坑是新手最常踩的。

掌握以上技巧后,你就可以把散落在各个月份的文字数据,变成 可排序、可筛选、可图表 的完整时间序列,为后续的数据分析和决策提供坚实基础。

📚 配套学习资料免费领

评论回复:DATE

点击公众号菜单「函数教程」或直接发送关键词

,获取更多实战案例与练习文件。