excel中根据身份证号码计算年龄(x岁x月x天)的公式

来源:百度知道 编辑:UC知道 时间:2024/06/05 00:27:39
计算年龄(x岁x月),=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(),"m")-12*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")&"月" 这个公式是否正确,是否考虑到闰年的情况?若不正确,请高手提供正确的公式! 相应的,计算年龄(x岁x月x天)的公式又该是怎样的呢?
谢谢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)

<