下面举例分步实现 1 加权求和 首先需要提取身份证号的前17位数字,这一功能可以用MID函数实现: MID(单元格,起始位置,字符长度):从文本字符串中指定的起始位置起返回指定长度的字符 利用MID函数提取出的数字需要加权求和。加权数如表1所示 若身份证号所在单元格为D3,则表达式可写为: =MID(D3,1,1)*7+MID(D3,2,1)*9+MID(D3,3,1)*10+MID(D3,4,1)*5+MID(D3,5,1)*8+MID(D3,6,1)*4+MID(D3,7,1)*2+MID(D3,8,1)*1+MID(D3,9,1)*6+MID(D3,10,1)*3+MID(D3,11,1)*7+MID(D3,12,1)*9+MID(D3,13,1)*10+MID(D3,14,1)*5+MID(D3,15,1)*8+MID(D3,16,1)*4+MID(D3,17,1)*2 函数会返回加权后的和值S 2 求余数 在Excel中求取余数可用MOD函数实现: MOD(被除数,除数) :返回两数相除的余数 将第一步的求和结果嵌套在MOD函数中作为参数,表达式为: =MOD(MID(D3,1,1)*7+MID(D3,2,1)*9+… +MID(D3,17,1)*2) 函数会返回和值S除以11的余数 3 查找校验码 求得余数之后需要查询对应校验码,将余数与校验码对应关系做成一个表格存储在另一个工作表中,工作表命名为“校验数据”,如图1所示 在这个工作表中根据余数查找校验码可以利用VLOOKUP函数实现: VLOOKUP(线索,查找区域,目标列,逻辑值):搜索查找区域中首列满足条件的元素,确定待检索单元格在区域的行序号,再进一步返回该行中目标列的值 根据函数使用规则,第一个参数在本例中可以确定为之前步骤返回的余数,查找区域为“校验数据”工作表的D2至E12区域,引用方式可表述为: 校验数据!$D$2:$E$12 第三个参数为查找区域目标所在列,本例中是2,最后一个参数逻辑值的意义为是否启用模糊查找,本例中不需要启用,直接填0或FALSE即可。因此综合表达式为: =VLOOKUP(MOD(MID(D3,1,1)*7+MID(D3,2,1)*9+… +MID(D3,17,1)*2),校验数据!$D$2:$E$12,2,0) 函数会返回比对后的校验码 4 比对验证 最后一步需要将得到的校验码与身份证号第18位比较,检查是否一致。检查一致性的功能可以用EXACT函数实现: EXACT(字符串1,字符串2):比较两个字符串是否完全一致,一致返回TRUE,不一致返回FALSE 利用EXACT函数比对得到的校验码与身份证号第18位,表达式可写为: =EXACT(MID(D3,18,1),VLOOKUP(MOD(MID(D3,1,1)*7+MID(D3,2,1)*9+… +MID(D3,17,1)*2),校验数据!$D$2:$E$12,2,0)) 函数会返回比对后的最终结果,结果为TRUE的表示身份证号通过校验,结果为FALSE的表示身份证号有错误 以上就是在Excel中校验身份证号的方法,希望对大家的工作、学习有所启发 参考文献 [1]