如何在excel中输入出生日期显示年龄

单位制作表格,另一个表里有出生年月,但是没有年龄,但是制作的表里需要的是年龄,不是出生日期,我一次性复制许多,粘贴过来,显示的石出生年月,如何能生成年龄呢?

假如:A1输入身份证号码、B1显示性别、C1显示出生日期、D1显示周岁。
需要设置:A1单元格为文本格式、B1和D1为常规格式、C1为日期格式。
1、显示性别:
B1输入公式:
=IF(A1="","",IF(AND(LEN(A1)<>15,LEN(A1)<>18),"错误",IF(ISERROR(1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"))),"错误",IF(OR((1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")))<VALUE("1905-01-01"),(1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")))>TODAY()),"错误",IF(MOD(MID(A1,15+(LEN(A1)=18)*2,1),2)=0,"女","男")))))
2、显示出生日期:
C1输入公式:
=IF(LEN(A3)=15,CONCATENATE("19",MID(A3,7,2)&"-"&MID(A3,9,2)&"-"&MID(A3,11,2)),IF(LEN(A3)=18,CONCATENATE(MID(A3,7,4)&"-"&MID(A3,11,2)&"-"&MID(A3,13,2))," 身份证错"))
3、显示周岁:
D1输入公式:
=IF(ISERROR(1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"))),"错误",IF(OR((1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")))<VALUE("1905-01-01"),(1*(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")))>TODAY()),"错误",DATEDIF(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"),TODAY(),"y")))
满足你的要求了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-09
要求A4是身份证号E4出生年月F4年龄(以下公式15、18位号码通用)

E4
=TEXT(MID(A4,7,6+2*(LEN(A4)=18)),"#00年00月00日")

F4
=DATEDIF(TEXT(MID(A4,7,6+2*(LEN(A4)=18)),"#00-00-00"),TODAY(),"y")
第2个回答  2012-02-09
设A1为出生日期,则=datedif(A1,today(),"y")