首先,身份证号是18位字符,可能包含0-9十个数字和X一个字母。
所以第一步,使用LEN函数来确定字符长度正确与否。
=IF(LEN(A1)=18,"正确","位数不对")
然后,对字符数正确的,可以使用身份证号码的验证规则来验证身份证号码是否符合编码规则。
验证公式:
=MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A1)
将两组公共合并起来:
=IF(LEN(A1)=18,IF(MID("10X98765432",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(A1),"正确","验证不合格"),"位数不对")
这个公式可以防“失误”,但防不了“故意”。