DATEDIF函数
函数用途:计算两个日期之间相隔的天数、月数或年数
语法结构:DATEDIF(start_date,end_date,unit)
参数说明:
- start_date:必需。表示给定期间的第一个或开始日期的日期。 日期值有多种输入方式:带引号的文本字符串(例如 "2001/1/30")、序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE("2001/1/30"))
- end_date:必需。用于表示时间段的最后一个(即结束)日期的日期
- unit:
"Y" 一段时期内的整年数。
"M" 一段时期内的整月数。
"D" 一段时期内的天数。
"MD" start_date与end_date之间天数之差。忽略日期中的月份和年份。重要: 不推荐使用“MD”参数,因为存在相关已知限制。 参阅下面的“已知问题”部分。
"YM" start_date 与 end_date 之间月份之差。 忽略日期中的天和年份
"YD" start_date 与 end_date 的日期部分之差。 忽略日期中的年份。
应用场景:
1.员工生日
2.员工工龄
3.员工转正/合同到期
使用注意事项:
1.start_date大于end_date,结果将#NUM!
2.日期存储为可用于计算的序列号。默认情况下,1900年1月1日的序列号为1,2008年1月1日的序列号为39,448,这是因为它距1900年1月1日有39,447天
用途详解:
1. 参数演示
2.员工生日
说明:
计算员工的离过生日的天数,用了2种方法,结果是一致的。
TODAY():返回今天的日期,例如:2020/04/25
YEAR():返回对应于某个日期的年份,YEAR(TODAY()),返回今年的年份,2020。
比较一下2个公式,只有前面的公式不同,这是2种统计今年天数的方法,因为闰年是366天,2020年正好是闰年。
1.=DATEDIF(B3,TODAY(),"YD"),B3的值是”2000-05-01”,TODAY()返回的2020/04/25,这里如果写成DATEDIF(TODAY(),B3,"YD"),会报错,因为start_date必须小于end_date,所以公式=DATEDIF(B3,TODAY(),"YD")返回的值是359,然后在用当年的天数减去,就得到离生日天数。
2.=(YEAR(TODAY())&"-12-31")-(YEAR(TODAY())&"-1-1")+1 等同于 “2020-12-31”-“2020-01-01”天数,后面需要再+1天。
3.=DATE(YEAR(TODAY())+1,1,1)-DATE(YEAR(TODAY()),1,1) 等同于 “2021-01-01”-“2020-01-01”
3. 员工工龄
工龄(年)公式:=DATEDIF(B3,TODAY(),"m")/12。
工龄(整年取)公式:=INT(DATEDIF(B3,TODAY(),"m")/12),使用INT函数。(规则:不到1年的舍去)
工龄(半年取)公式:=CEILING(DATEDIF(B3,TODAY(),"m")/12,0.5) 使用CEILING函数。(规则:1-180天算0.5年,超过180天算1年)
4.员工转正/合同到期
公式:=DATEDIF(TODAY(),B3,"D")
网友评论