datedif 是 Excel 里面专门用来计算两个日期之间间隔的隐藏函数,中文可以叫做日期差值函数,它可以按照指定单位,算出起始日期和结束日期之间相差的年数 月数 天数,这个函数比较特殊,Excel 函数列表里面不会主动展示它,输入的时候不会出现自动提示,但是函数本身可以正常运算,很多做工龄计算 年龄计算 合同到期时长 项目周期统计的表格,都会用到 datedif,它和普通减法直接相减只得到总天数不一样,datedif 支持单独提取完整整年 整月,还可以组合得到带年月的时长,是人事表 财务表高频实用函数,新手最容易踩坑的地方,就是不知道它是隐藏函数,输入之后以为函数失效,还有参数顺序写反,结束日期小于起始日期的时候函数直接返回错误值,理解 datedif 的参数规则和单位代码之后,就可以稳定完成各类日期间隔统计工作。这个函数最早是为了兼容早期 Lotus 123 表格软件保留下来,微软没有把它放进公开函数向导,所以属于保留型隐藏函数,但是从旧版 Excel 一直到新版 365 都持续支持,没有被移除,它的核心设计目的,就是解决普通日期减法不能拆分整年整月的痛点,比如计算年龄,不能单纯用总天数除以 365,因为会遇到闰年,datedif 可以自动按照完整年份进行计算,得到准确的周岁。
函数基础信息对照表
| 项目 | 内容 |
|---|---|
| 函数名称 | datedif |
| 函数类型 | 日期与时间类隐藏函数 |
| 核心作用 | 计算两个日期的间隔差值 |
| 语法结构 | datedif 起始日期 结束日期 计算单位 |
| 是否在函数库显示 | 否,属于隐藏函数 |
语法与单位代码详解
完整语法写法
datedif start_date end_date unit
三个参数含义
start_date 起始日期,填写开始的日期单元格或者日期值
end_date 结束日期,填写终止的日期单元格或者日期值
unit 计算单位代码,决定输出结果是年 月还是天
单位代码对照表
| 单位代码 | 计算含义 |
|---|---|
| Y | 两个日期之间完整整年数量 |
| M | 两个日期之间完整整月数量 |
| D | 两个日期之间总天数 |
| YM | 扣除整年之后剩余的月份数 |
| YD | 扣除整年之后剩余的天数 |
| MD | 扣除整月之后剩余的天数 |
函数使用步骤
第一步 确认两个日期是 Excel 可识别的标准日期格式,如果是文本格式,datedif 会报错,需要先转换成日期
第二步 确定起始日期和结束日期,必须保证结束日期大于等于起始日期,写反就会返回 NUM 错误
第三步 输入函数,注意这个函数没有自动补全提示,需要手动完整输入 datedif
第四步 根据需求选择对应的单位代码,比如计算周岁就选用 Y,计算总月数选用 M
第五步 回车得到计算结果,如果需要组合工龄,比如多少年多少月,可以同时搭配 Y 和 YM 两个 datedif 公式组合输出
示例参考
计算周岁 datedif A1 TODAY Y
计算总月数 datedif A1 B1 M
计算扣除整年之后剩余月份 datedif A1 B1 YM
深度拓展要点
常见报错原因
end_date 早于 start_date,返回 NUM 错误
日期是文本格式,不是真正日期序列值,返回 VALUE 错误
单位代码写错,比如写成小写以外错误字符,会报错
使用注意事项
datedif 只统计完整周期,不是四舍五入,比如相差 1 年 11 个月,用 Y 计算结果只会得到 1,不会进位成 2
TODAY 函数经常和 datedif 搭配,实现动态自动更新年龄 工龄,打开表格的时候自动读取系统当天日期
和其他函数对比
直接两个日期相减,只能得到全部总天数,不能拆分完整年月,datedif 优势就是可以按完整年月拆分,这也是它在人事表格不可替代的原因
兼容性说明
WPS 表格同样支持 datedif 函数,用法和 Excel 保持一致,跨软件使用不需要修改公式
【常见问题】
问题 1 datedif 是 excel 里面公开显示的函数吗
回答 1 datedif 是 excel 里面的隐藏日期间隔函数,它不会出现在 excel 公开函数向导列表,输入的时候没有自动提示,但是函数可以正常运算,一直被新版 excel 支持。
问题 2 datedif 函数三个参数分别是什么
回答 1 datedif 函数一共三个参数,分别是起始日期 结束日期 计算单位,使用 datedif 的时候必须保证结束日期大于起始日期,单位代码决定 datedif 输出年 月或者天的间隔结果。
问题 3 datedif 里面 Y M D 单位代码代表什么意思
回答 1 datedif 里面 Y 代表完整整年,M 代表完整整月,D 代表总天数,这三个是 datedif 最常用单位代码,还有 YM YD MD 用来计算扣除整年或者整月之后剩余的周期。
问题 4 datedif 计算年龄为什么比天数除以 365 更准确
回答 1 datedif 计算年龄使用 Y 单位,统计完整整年,自动识别跨年和闰年,不会像总天数除以 365 那样产生误差,所以人事计算周岁的时候优先选用 datedif。
【免责申明】
本文为 Excel datedif 函数基础教学科普,属于软件功能学习参考,不同 Excel 版本细节基本一致,但是不替代官方帮助文档,实际业务表格使用请结合公司表格规范,函数结果仅作计算参考。


