使用 DATEDIF 函数
DATEDIF 函数可返回两个日期之间间隔的年数、月数或天数,可应用于计算员工工龄、合同周期、贷款时间及员工生日倒计时等多种场景。
一、DATEDIF 函数介绍
参数介绍
DATEDIF(起始日期, 结束日期, 单位)
- 起始日期:要计算的开始日期,可以是日期字段,或格式为日期类型的数字、公式字段等
- 结束日期:要计算的结束日期,可以是日期字段,或格式为日期类型的数字、公式字段等
- 单位:时间单位等缩写,有效值包括:"Y"(整年数)、"M"(整月数)、"D"(天数)、"MD"(排除整月数后剩下的天数)、"YM"(排除整年数后剩下的整月数)、"YD"(排除整年数后剩下的天数)
说明:"YD" 即忽略年份,仅计算两个日期间隔的天数,例如 2015年9月5日 与 2021年8月31日,实际相差 5年零361天,若以 "YD" 为单位,则仅返回 361 ,为361天。
注:起始日期必须在 1900 年之后,结束日期必须晚于起始日期。
二、操作流程
- 在创建字段时,选择 公式 作为字段类型。
- 在公式编辑器中,输入 DATEDIF 函数,按要求设置起始日期、结束日期和单位,点击 确认。
- 在 字段格式 中指定相应的格式。
- 注:为字段设定适当的格式。如果格式设置错误,将出现 “无法计算,请修改格式”的提示。此时应修改格式或DATEDIF 函数的参数。否则字段将无法被正常计算。
250px|700px|reset
三、应用案例
- 计算合同剩余天数
场景:处理与多家供应商的合作合同时,需要清晰计算出各份合同有效期的剩余天数,以便进行续签提醒。
公式:DATEDIF(TODAY(),到期时间,"D")
说明:计算合同到期时间距离今天的日历天数,此处 TODAY() 函数返回今天的日期。
250px|700px|reset
- 设置员工生日提醒
场景:通过设置员工生日倒计时提示,企业可以提升员工满意度与忠诚度。
公式:CONCATENATE("距离生日还有",365-DATEDIF(出生日期,TODAY(),"YD"),"天")
说明:通过 DATEDIF 计算距离下次生日已经过完的天数,与整年 365 天求差,计算距离下次生日剩余的天数。使用 CONCATENATE 函数,将“距离生日还有”与天数结合,显示员工生日倒计时。
- 如果你希望在每周开始时得到本周过生日的员工名单,可采用下述公式:
公式:IF(DATEDIF(出生日期-7,TODAY(),"YD")<7,CONCATENATE(姓名,"生日倒计时",7-DATEDIF(出生日期-7,TODAY(),"MD"),"天"),"")
说明:与 IF 函数嵌套,若出生日期与当前日期不足 7 天,显示“xx生日倒计时xx天”,否则显示为空值。
250px|700px|reset
- 计算员工工龄及薪酬
场景:计算员工工龄及薪酬,其中工作满六个月不满一年的,按一年计算。
公式:IF(INT(RIGHT(ROUNDDOWN(DATEDIF(入职时间,TODAY(),"M")/12,1),1))<5,INT(DATEDIF(入职时间,TODAY(),"M")/12)+0.5,INT(DATEDIF(入职时间,TODAY(),"M")/12)+1)
说明:利用 DATEDIF 函数计算员工入职时间并换算为年,使用 ROUNDDOWN()、RIGHT() 函数取所得结果的小数点后一位,通过与 IF 函数嵌套,设置若前一步返回值小于 5,即代表工作不满半年,则在整年的基础上+0.5,反之则按 1 年计算。
注:如需计算薪酬,在上述所得工作年限的基础上乘以每年工龄增加金额,再加上基本工资即可。
250px|700px|reset
四、常见问题