你的公式是很精炼,但因为Excel的日期实际是到某一天的,所以虽然看到的是“1983-3”实际具体哪一日并不一定,可能是31日,也可能是1日。还有两日期相减,结果是一个数值,但用日期表达出来是“1901-1-1”日后的某1天。Excel中数值和日期存储的结果是一样的,只是表达方式区别而已。
所以还是换个函数吧:
=IF(MONTH(C3)>=MONTH(B3),(YEAR(C3)-YEAR(B3))&"年"&(MONTH(C3)-MONTH(B3))&"个月",(YEAR(C3)-YEAR(B3)-1)&"年"&(MONTH(C3)-MONTH(B3)+12)&"个月")
=DATEDIF(B3,C3,"y")&"年"&DATEDIF(B3,C3,"ym")&"个月"
B3 参加工作时间,C3结束时间,结果设为数字格式
=DATEDIF(B3,C3,"y") '周年
或
=DATEDIF(B3,C3,"m")/12 '年
=YEAR(NOW())-YEAR(B2)-IF(DATE(YEAR(B2),MONTH(NOW()),DAY(NOW()))<=B2,1,0)
对于日期格式的计算,Excel默认计算结果也保存为日期格式,如果你想让其显示成数值,你可以这样处理一下。
=CONCATENATE("",原公式)
=IF(MONTH(C14)-MONTH(B14)=0,TEXT(YEAR(C14)-YEAR(B14),"G/通用格式")&"年",TEXT(YEAR(C14)-YEAR(B14),"G/通用格式")&"年"&TEXT(MONTH(C14)-MONTH(B14),"G/通用格式")&"个月")