发布网友 发布时间:2022-04-25 16:36
共3个回答
热心网友 时间:2023-10-18 15:13
假如: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(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()),"错误",VALUE(TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#年00月00日"))))))
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")))
满足你的要求了
热心网友 时间:2023-10-18 15:14
公式没有错,但是估计你写反了 =IF(ISBLANK(A1),TODAY(),"y")
试试追问还是不行啊,=IF(ISBLANK(A1),"y","n")这样可以显示y,n但是换成TODAY(),就显示TRUE,FALSE了。
追答晕,你公式所在单元格被设置成了逻辑型.
改为常规或者日期型试试
热心网友 时间:2023-10-18 15:14
将B1单元格格式设置为日期型