跳转至

DATEDIF 函数

函数概述

DATEDIF 用于计算两个日期之间的差值,既可以按完整的年数完整的月数完整的天数来计算,也可以只返回差值中“剩余的月/日”等部分(例如“去掉整年后还剩几个月”)。

它非常适合做这类需求:

  • 计算年龄(按周岁/按年月日拆分)
  • 计算入职时长、项目周期(年/月/日)
  • 统计两个日期之间相隔多少个月、多少天

说明:DATEDIF 是 Excel 中的“隐藏函数”之一,通常不会在函数提示列表里完整展示,但在 Excel 中可正常使用。


基础语法

=DATEDIF(start_date, end_date, unit)

参数说明

参数 类型 必填 说明
start_date 日期/可解析为日期的文本/日期序列号 起始日期
end_date 日期/可解析为日期的文本/日期序列号 结束日期(通常应 ≥ 起始日期)
unit 文本 返回差值的单位/模式(见下表)

unit 可选值如下:

unit 返回含义 示例理解
"Y" 两日期间相差的完整年数 周岁(不含未满一年的部分)
"M" 两日期间相差的完整月数 不含未满一月的部分
"D" 两日期间相差的天数 直接按天计算差
"YM" 去掉整年后剩余的完整月数 年月日拆分里的“月”部分
"MD" 去掉整月后剩余的天数 年月日拆分里的“日”部分
"YD" 去掉整年后剩余的天数 只看同一年跨度的天数差

基础用法示范

下面示例假设:

  • 起始日期在 A2
  • 结束日期在 B2

并给出不同 unit 的典型用法。

1)计算相差完整年数

=DATEDIF(A2,B2,"Y")

适用场景:按“满多少年”统计,如年龄周岁、在岗满几年。


2)计算相差完整月数

=DATEDIF(A2,B2,"M")

适用场景:合同从开始到结束一共“满了多少个月”。


3)计算相差天数(总天数)

=DATEDIF(A2,B2,"D")

适用场景:项目周期天数、逾期天数(配合 IF 做判断)。


4)拆分成“X年X月X日”

年:

=DATEDIF(A2,B2,"Y")

月(去掉整年后剩余月):

=DATEDIF(A2,B2,"YM")

日(去掉整月后剩余日):

=DATEDIF(A2,B2,"MD")

如果你要拼成一句话显示(示例):

=DATEDIF(A2,B2,"Y")&"年"&DATEDIF(A2,B2,"YM")&"个月"&DATEDIF(A2,B2,"MD")&"天"

适用场景:展示“已工作 3年2个月15天”这类结果。


5)只计算“去掉整年后”的天数(YD)

=DATEDIF(A2,B2,"YD")

适用场景:例如只关心“今年内已经过了多少天(相对起始月日)”的差值表达。


总结

  • DATEDIF(start_date, end_date, unit) 用来计算两日期差值,核心在于选择合适的 unit
  • 常用三种基础单位:"Y"(完整年)、"M"(完整月)、"D"(天数)。
  • 拆分“年/月/日”最常用组合是:"Y" + "YM" + "MD",非常适合做年龄、工龄、累计时长展示。
  • 如果需要面向业务输出更友好的文案,可以把多个 DATEDIF 结果进行拼接,得到更直观的“X年X月X天”。