方式:首先单元格中输入“=IF(LEN(数据)=18,MID(10X98765432,MOD(SUMPRODUCT(VALUE(MID(数据,ROW(数据区域),1)),数据区域),11)+1,1),长度错误)”;然后进行对比即可。 本教程操作环境:windows7系统、Micr
方式:首先单元格中输入“=IF(LEN(数据)=18,MID('10X98765432',MOD(SUMPRODUCT(VALUE(MID(数据,ROW(数据区域),1)),数据区域),11)+1,1),'长度错误')”;然后进行对比即可。
本教程操作环境:windows7系统、Microsoft Office Excel2013版、Dell G3电脑。
先看一下原理,二代身份证共18位,那么最后一位是由前面的18位通算术来计算出来的,如果某一位出错,那么校验结果就会不一致,引此来判断这个身份证号是不是正确合法
再看一下算法,先将身份证前面的17位数分别乘以不同的系数,如图所示
把这个17位数字和系数相乘后所得的结果相加,得到一个总和数,再除以11得到余数,那么余数与校验码(身份证是的最后一位)相对应的关系如图所示,即如果余数为3,校验码为9。
验证原理理清后,看一下在excel上怎样操作,新建一个表格,简单做一个表格,便于观看
为了更好理解,先算18位,=IF(LEN($C2)=18,MID('10X98765432',MOD(SUMPRODUCT(VALUE(MID($C2,ROW($1:$17),1)),$B$2:$B$18),11)+1,1),'长度错误')
再验证这个第18位与身份证的第18位是不一致合法有效=IF(LEN($C2)=18,IF(MID('10X98765432',MOD(SUMPRODUCT(VALUE(MID($C2,ROW($1:$17),1)),$B$2:$B$18),11)+1,1)=RIGHT($C2,1),'合法','不合法'),'长度错误')
相关学习推荐:excel教程