excel中根据身份证号码计算年龄(x岁x月x天)的公式
来源:百度知道 编辑:UC知道 时间:2024/06/05 00:27:39
谢谢pootor和顺其道,原来还有"YM"和"MD"这样的东西啊,长见识了。我发现这个公式可以简化:=DATEDIF(TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00"),today() ,"Y")&" 岁"&DATEDIF(TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00"),today() ,"YM")&"月"&DATEDIF(TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00"),today() ,"MD")&"天"
你的公式思路没错,但缺了天数,我给补上
=DATEDIF(IF(LEN(A1)=18, DATE(MID(A1,7,4), MID(A1,11,2), MID(A1,13,2)), DATE(MID(A1,7,2), MID(A1,9,2), MID(A1,11,2))), TODAY(), "Y") &"岁" & DATEDIF(IF(LEN(A1)=18, DATE(MID(A1,7,4), MID(A1,11,2), MID(A1,13,2)), DATE(MID(A1,7,2), MID(A1,9,2), MID(A1,11,2))), TODAY(), "YM") &"月" & DATEDIF(IF(LEN(A1)=18, DATE(MID(A1,7,4), MID(A1,11,2), MID(A1,13,2)), DATE(MID(A1,7,2), MID(A1,9,2), MID(A1,11,2))), TODAY(), "MD") & "天"
另外,不必“-12*Y”那样计算,用“YM”表示不计年月数,“MD”表示不计月天数。
出生日期
A2=TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")
岁数:
A3=DATEDIF(A2,TODAY(),"Y")&"岁"&DATEDIF(A2,TODAY(),"YM")&"月"&DATEDIF(A2,TODAY(),"MD")&"天"
=IF(D2="","",DATEDIF(TEXT((LEN(D2)=15)*19&MID(D2,7,6+(LEN(D2)=18)*2),"#-00-00"),TODAY(),"y"))
=YEAR(TODAY())-MID(身份证所在单元格数,7,4)