Excel用身份证号计算性别、年龄、校验身份证对错公式

2021051016280313762

=IF(LEN(CLEAN(C7))=18,IF(MID("10X98765432",MOD(SUMPRODUCT(MID(CLEAN(C7),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(CLEAN(C7),1),"正确","身份证错误"),"身份证长度错")

C7是目标定位

第二种办法

=IF(LEN(D26)=0,"空",IF(LEN(D26)=15,"旧号",IF(LEN(D26)<>18,"位数不对",IF(CHOOSE(MOD(MID(D26,1,1)*7+MID(D26,2,1)*9+MID(D26,3,1)*10+MID(D26,4,1)*5+MID(D26,5,1)*8+MID(D26,6,1)*4+MID(D26,7,1)*2+MID(D26,8,1)*1+MID(D26,9,1)*6+MID(D26,10,1)*3+MID(D26,11,1)*7+MID(D26,12,1)*9+MID(D26,13,1)*10+MID(D26,14,1)*5+MID(D26,15,1)*8+MID(D26,16,1)*4+MID(D26,17,1)*2,11)+1,1,0,"X",9,8,7,6,5,4,3,2)=IF(ISNUMBER(RIGHT(D26,1)*1),RIGHT(D26,1)*1,"X"),"正确","错误"))))

D26是目标定位

性别

=IF(OR(LEN(D27)=15,LEN(D27)=18),IF(MOD(MID(D27,15,3)*1,2),"男","女"),#N/A)

年龄

=YEAR(NOW())-MID(D27,7,4)

相关文章