今天来讲解下Excel中的隐藏函数datedif,这个函数在Excel中是一个隐藏函数,所以输入并没有智能提示,它主要用于日期计算,可以精确的求出,相隔的年份,月份以及天数,使用datedif的这些特性,可以实现例如生日提醒这样的功能。
datedif函数语法:datedif(开始日期,结束日期,返回的类型)
第三个参数返回类型有多种形式
"Y" 时间段中的整年数。 "M" 时间段中的整月数。 "D" 时间段中的天数。忽略日期中的月份和年份。忽略日期中的年份。忽略日期中年份。"YM"这三个参数,通过一个表格我来讲下下它的意思。
①如果参数是“MD”,就是不管年,也不管月,就计算两者天数的差。所以在这个列子中,天数差就是8-5=3,所以是三天。

"YD",虽然日期2020/1/5和2022/5/8不在同一年,但是datedif函数会自动把他们转成同一年,所以计算的天数就是1月5日到5月8日有多少天,所以计算出间隔天数为124天。


知道了语法,我们来做两个具体案例。
一、计算工龄工资。在计算年龄的时候,很多朋友是用year函数提取出生日期中的年,然后相减。这显然是不合理的,尤其在计算工龄工资的时候,比如一个人2021年4月3日入职,到2022年4月1日,并不满一年,是不会算工龄工资的,所以不应该用日期相减,而是应该用datedif。

公式为:=DATEDIF(C2,TODAY(),"y")*100,其中today返回的是当天的日期。
大家可以看到有个员工是2021/8/30入职,不足一年,所以工龄为0
二、生日提醒

公式:=DATEDIF(C2,TODAY(),"yd") 参数“yd”是忽略年,就让日期和天数相减。比如今天是2022/8/22日,而张飞的出生年月是1981/8/22,那就是8/22减去8/22,所以就为0,不就是生日吗。
我们还可以让它显示成天数加文字的形式。

text函数可以格式化数字。=TEXT(F2,"还有0天生日;;今天生日"),第二个参数分为四段,依次为数字>0显示什么,<0显示什么,=0显示什么,最后一个参数为不是数字的时候显示什么。
以上呢就是datedif函数的用法。
