datedif 函数是 Excel 里面专门用来计算两个日期之间间隔的隐藏函数,它可以按照年 月 日三种单位输出间隔数值,常用来计算工龄 年龄 合同剩余时长,这个函数在 Excel 函数列表里面不会自动显示,属于没有被官方列入提示菜单的函数,但是输入公式之后可以正常运算,很多用户不知道它的完整语法,容易把参数顺序写错,也不清楚第三参数不同代码代表的含义,使用的时候必须保证起始日期早于结束日期,否则函数会直接报错,接下来分层讲解语法结构 参数说明 代码含义 实操步骤 常见错误和进阶案例。
函数基础语法
完整公式写法
DATEDIF 开始日期 结束日期 计算单位
清单
第一参数 start_date 起始日期,必须是合法日期格式
第二参数 end_date 结束日期,必须大于起始日期
第三参数 unit 计算单位代码,决定输出是年 月还是日
注意 函数名称是 DATEDIF,很多人会误写成 DATEIF,拼写错误会导致公式失效
第三参数代码对照表
| 代码 | 计算含义 | 输出结果说明 |
|---|---|---|
| Y | 整年数 | 两个日期之间完整的年间隔 |
| M | 整月数 | 两个日期之间完整的月间隔 |
| D | 总天数 | 两个日期之间全部天数 |
| YM | 除去整年之后剩余月份 | 忽略年份,只算剩下的月份 |
| YD | 除去整年之后剩余天数 | 忽略年份,只算剩下天数 |
| MD | 除去整月之后剩余天数 | 忽略年月,只算剩下天数 |
基础实操步骤
第一步 在单元格输入等于号,输入 DATEDIF
第二步 填入第一个日期单元格,比如 A2,代表开始日期
第三步 填入第二个日期单元格,比如 B2,代表结束日期
第四步 填入第三参数代码,用英文双引号包裹,比如 Y
第五步 按回车得到计算结果
示例公式 DATEDIF A2 B2 Y
含义 计算 A2 起始日期到 B2 结束日期,间隔多少年
典型应用案例
清单
案例 1 计算周岁年龄 DATEDIF 出生年月日 今天 Y
公式 DATEDIF A2 TODAY Y
案例 2 计算工龄 DATEDIF 入职日期 当前日期 Y
案例 3 精确拆分 年月日 比如 DATEDIF A2 B2 Y 得到年 DATEDIF A2 B2 YM 得到剩余月 DATEDIF A2 B2 MD 得到剩余天
重点注意事项
第一 日期必须是 Excel 可识别日期,如果是文本格式的日期,函数会报错
第二 起始日期不能晚于结束日期,否则返回 NUM 错误
第三 这个是隐藏函数,WPS 表格同样支持该函数,但是部分新版在线表格可能兼容性不同
第四 代码必须是英文双引号,区分大小写不敏感,但是不能写成中文引号
第五 MD 这个参数在部分版本 Excel 存在已知计算偏差,高精度场景要留意
常见错误原因
清单
错误 1 函数拼写错误 DATEIF 正确是 DATEDIF
错误 2 参数顺序颠倒,结束日期早于起始日期
错误 3 第三参数没有加英文双引号
错误 4 单元格内容是文本,不是真正日期
【常见问题】
问题 1 datedif 函数为什么在 Excel 函数列表找不到
回答 1 datedif 函数属于 Excel 隐藏函数,datedif 函数不会出现在自动函数提示菜单,但是手动输入 datedif 函数公式依然可以正常计算日期间隔。
问题 2 datedif 函数第三参数 YM 是什么意思
回答 1 datedif 函数第三参数 YM,代表扣除完整年份之后剩下的月份,datedif 函数使用 YM 可以单独提取两个日期之间剩余月份。
问题 3 datedif 函数计算年龄为什么会少一岁
回答 1 datedif 函数 Y 参数只统计完整周年,还没有到当年生日的时候不会进位,所以 datedif 函数计算周岁会严格按满年计算,不会提前加一岁。
【免责申明】
本文内容为 Excel 函数学习参考,不同版本 Excel 和 WPS 对 datedif 函数支持存在细微差异,正式业务计算建议核对官方软件说明。


