Excel中计算日期差值有五种方法:一、DATEDIF函数分段计算年月日;二、减法得总天数;三、结合TODAY动态算工龄;四、YEARFRAC得小数年份;五、用ISNUMBER、IFERROR等处理错误。

如果您需要在Excel中计算两个日期之间的差值,例如工龄或具体天数,则可以通过内置函数直接得出结果。以下是实现此目标的步骤:
一、使用DATEDIF函数计算年月日差
DATEDIF函数专用于计算两个日期之间的完整年数、月数或天数,适用于工龄等需分段统计的场景。该函数为隐藏函数,但完全可用,且支持“y”、“ym”、“md”等参数组合以分离年、月、日增量。
1、在目标单元格中输入公式:=DATEDIF(开始日期,结束日期,"y"),获取整年数。
2、在同一行或相邻单元格输入:=DATEDIF(开始日期,结束日期,"ym"),获取剩余整月数。
3、再输入:=DATEDIF(开始日期,结束日期,"md"),获取剩余天数(忽略年和月)。
二、用减法直接计算总天数
Excel将日期存储为序列号,因此两日期相减可直接得出间隔天数。该方法最简捷,适用于仅需总天数的场景,如考勤天数、项目周期等。
1、确保两个日期均为有效日期格式(如2020/3/15),非文本。
2、在空白单元格中输入公式:=结束日期-开始日期,例如=B2-A2。
3、按Enter确认,结果即为两日期间包含的完整天数(含起始日或不含,依业务逻辑而定)。
三、结合TODAY函数动态计算当前工龄
若需实时更新员工从入职日起至今日的工龄,可将TODAY()函数嵌入DATEDIF中,使结果随系统日期自动变化,避免手动修改结束日期。
1、在工龄显示单元格中输入:=DATEDIF(入职日期,TODAY(),"y")&"年"&DATEDIF(入职日期,TODAY(),"ym")&"月"。
2、确保入职日期所在单元格格式为日期型,不可为文本。
3、该公式将返回类似5年3月的字符串结果,便于阅读。
四、使用YEARFRAC函数计算带小数的工龄年份
YEARFRAC函数返回两个日期之间的完整年份数,结果为小数形式(如3.75年),适用于需精确到季度或按比例折算薪酬、社保等场景。
1、在目标单元格中输入:=YEARFRAC(开始日期,结束日期,1),第三个参数“1”表示实际天数/实际天数基准。
2、若需保留两位小数,可套用ROUND函数:=ROUND(YEARFRAC(A2,TODAY(),1),2)。
3、注意:该函数结果不区分整年与余月,仅提供连续年份值。
五、处理跨世纪或负日期导致的#VALUE!错误
当起始日期晚于结束日期,或任一单元格为文本格式、空值、非法日期(如2023/2/30)时,上述函数均会返回#VALUE!错误。需预先校验数据有效性。
1、使用ISNUMBER函数判断日期是否有效:=ISNUMBER(开始日期)*ISNUMBER(结束日期),返回1表示两者均为有效数字型日期。
2、嵌套IFERROR屏蔽错误:=IFERROR(DATEDIF(A2,B2,"y"),"日期无效")。
3、对疑似文本日期,可用DATEVALUE函数尝试转换:=DATEVALUE(A2),成功则返回序列号,失败则报错。









