一、假设入职日期写在A1单元格,则可以在B1单元格写入公式
=IF(A1="","",DATEDIF(A1,NOW(),"y"))
二、关于DATEDIF函数
DATEDIF函数是Excel隐藏函数,在帮助和插入公式里面没有。 返回两个日期之间的年\月\日间隔数。常使用DATEDIF函数计算两日期之差。
语法
DATEDIF(start_date,end_date,unit)
Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。
End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
Unit 为所需信息的返回类型。
Unit 返回
注:结束日期必须大于起始日期
下面举个小例子:在日常工作中非常实用。
假如A1单元格写的也是一个日期,那么下面的三个公式可以计算出A1单元格的日期和今天的时间差,分别是年数差,月数差,天数差。
注意下面公式中的引号和逗号括号都是在英文状态下输入的。
=DATEDIF(A1,TODAY(),"Y") 计算年数差
=DATEDIF(A1,TODAY(),"M") 计算月数差
=DATEDIF(A1,TODAY(),"D") 计算天数差
"Y" 时间段中的整年数。
"M" 时间段中的整月数。
"D" 时间段中的天数。
"MD" start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
"YM" start_date 与end_date 日期中月数的差。忽略日期中的年。
"YD" start_date 与 end_date 日期中天数的差。忽略日期中的年。
三、实例说明
实例1:
题目: 计算出生日期为1973-4-1人的年龄
公式: =DATEDIF("1973-4-1",TODAY(),"Y")
结果: 33
简要说明 当单位代码为"Y"时,计算结果是两个日期间隔的年数.
实例2:
题目: 计算日期为1973-4-1和当前日期的间隔月份数.
公式: =DATEDIF("1973-4-1",TODAY(),"M")
结果: 403
简要说明 当单位代码为"M"时,计算结果是两个日期间隔的月份数.
实例3:
题目: 计算日期为1973-4-1和当前日期的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"D")
结果: 12273简要说明 当单位代码为"D"时,计算结果是两个日期间隔的天数.
实例4:
题目: 计算日期为1973-4-1和当前日期的不计年数的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"YD")
结果: 220
简要说明 当单位代码为"YD"时,计算结果是两个日期间隔的天数.忽略年数差
实例5:
题目: 计算日期为1973-4-1和当前日期的不计月份和年份的间隔天数.
公式: =DATEDIF("1973-4-1",TODAY(),"MD")
结果: 6
简要说明 当单位代码为"MD"时,计算结果是两个日期间隔的天数.忽略年数和月份之差
实例6:
题目: 计算日期为1973-4-1和当前日期的不计年份的间隔月份数.
公式: =DATEDIF("1973-4-1",TODAY(),"YM")
结果: 7
简要说明 当单位代码为"YM"时,计算结果是两个日期间隔的月份数.不计相差年数注意:TODAY()函数获取的是系统当前日期,所有列举的实例为2006-11-7日的计算结果,并不一定和你得到的结果相符。
亲,假设入职日期在A1,则B1公式如下:
= "在职时间" & DATEDIF(A1,TODAY(),"Y") & "年" & DATEDIF(A1,TODAY(),"YM") & "月" & DATEDIF(A1,TODAY(),"MD")&"天"
用公式=year(today())-year(a1)可以实现
用VBA实现事件驱动
=DATEDIF(A1,TODAY(),"Y")
或
=DATEDIF(“日期”,TODAY(),"Y")