点赞再看,养成习惯;流水不腐,户枢不蠹。
微信搜索【亦心Excel】关注这个不一样的自媒体人。
本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Excel系统学习指南系列文章,以及各种Excel资料。

大家在处理员工信息的时候,应该都有处理过身份证号码吧。身份证号码里包含了很多信息,包括出生地、年龄、性别、生日、生肖、星座等等。今天我们不说如何提取这些信息,说一个更重要的身份证号码录入,毕竟有了数据才能提取,而且录入过程也有很多问题,让我们一起来看看如何解决这些问题。

1、显示问题

我们以现在主流的18位身份证号码为例,当我们在单元格中随便输入一个18位数字比如:123456789012345678。

我们发现身份证号码显示变成科学计数展示了,而且当我们再次选中身份证号码会发现最后3位数字都变成了0。这是因为Excel中数字的精度是15位,当数字超过15位时会用0代替。

处理方法也很简单,这里给两个小方法:①输入法切换至英文状态下,先输入单引号「’」再接着输入身份证号码即可;②右击单元格,设置单元格格式为文本格式即可。

2、长度验证

身份证号码18位数字,录入多了难免会眼花缭乱,一不小心就会多一位或少一位。

「数据验证」可以很好的解决这种情况,选中单元格区域,点击「数据」选项卡下「数据工具」命令组中「数据验证」,调出数据验证对话框,然后点击「设置」选项卡,允许选择「文本长度」,数据选择「等于」,长度选择「18」,最后点击确定即可。

演示如下:

3、唯一性验证

当位数验证完以后,又会有一个问题:重复输入。

选中不能重复输入单元格区域;选择「数据」→「数据工具」→「数据验证」调出验证对话框;验证对话框中「设置」选项卡下「验证条件」中「允许」为"自定义",公式为「=COUNTIF(B$5:B$7,B5&"*")=1」;

4、合法性验证

我们知道身份证号码是有一套计算规则的,下面我们就来一步一步讲解计算规则。

①首先身份证号码前17位数字各自都有其对应的系数,然后把17位数字分别和各自的系数相乘并把结果相加;

②把第一步计算的结果除以11并得到余数。而每一个余数都有其对应身份证号码第18位应该是什么数字;

③我们把上面计算出来的身份证号码尾数和实际的对比一下即可得出这个身份证号码是否合法。

我们举个例子,比如身份证号码为:321324199005161058。

  1. 首先计算前17位数与其系数乘积之和:3*7+2*9+1*10+3*5+2*8+4*4+1*2+9*1+9*6+0*3+0*7+5*9+1*10+6*5+1*8+0*4+5*2=264;
  2. 然后计算第一步结果除以11的余数:264/11余数为0,其对应的第18位数字应该是1;
  3. 计算出来的数字和我们实际数字不匹配,因此这个身份证号码不合法。

其实知道了计算规则以后,我们可以用很多种方式来验证身份证的合法性,下面我们提供一个公式:「=IF(MID("10X98765432",MOD(SUMPRODUCT(MID(B5,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(B5),"合法","不合法")」,只需要把B5单元格换成自己需要的单元格即可。

下面我们来看看演示效果:

当然还有很多其他公式或方法验证身份证号码合法性,大家有兴趣的可以自己去尝试尝试。

我们依次解决了显示问题、长度问题、重复问题、合法问题。但是其实整个过程还不完美,比如我们还可以对前6位所在地验证,是不是一个合法的所在地;对8位日期验证,是不是一个正确的日期。这样才能最大限度的保证身份证的正确性。后面我会用VBA写一个我自认为比较完美的自定义函数来验证身份证号码,到时候分享出来,有兴趣的可以一起讨论哦。

今天的分享到这里就结束了,但是学习的道路才刚刚开始,希望我们可以在学习的道路上不断地前进,坚持不懈。

如果你有感兴趣的功能,可以告诉小编哦,小编会为你写一篇相应的文章。当然是先到先写哈,我会列一个计划表,尽量满足大家的需求,所以如果下一篇不是你要的文章,请不要着急,可能就在下下篇。记得告诉小编你想学习的功能哦。

文章持续更新,可以微信搜索「 亦心Excel 」第一时间阅读,本文 GitHub https://github.com/hugogoos/Excel 已经收录,包含Excel系统学习指南系列文章,欢迎Star。

Excel中身份证号码验证,那些不得不说的事相关推荐

  1. excel从身份证号码中获取邮编信息?

    今天跟大家分享一下excel从身份证号码中获取邮编信息? 1.打开excel身份证号码文件,现在要求我们快速根据身份证号码提取邮编信息. 2.首先我们选中身份证号码单元格,点击[DIY工具箱]选项卡 ...

  2. javascript身份证号码验证函数支持带x

    //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3 ...

  3. 身份证号码验证-支持新的带x身份证

    //--身份证号码验证-支持新的带x身份证 function isIdCardNo(num)  {     var factorArr = new Array(7,9,10,5,8,4,2,1,6,3 ...

  4. 正则实现二代身份证号码验证详解

    Start 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 一: IdCodeValid:f ...

  5. 身份证号码验证(转)

    文章出处: http://dengo.org/archives/941 不少大的游戏注册时都要输入身份证号码,来限制未成年人,配合所谓的反沉迷系统,账号注册环节注重的是快捷,所以身份证验证都不是真实的 ...

  6. JS正则表达式-附身份证号码验证(简易版)

    文章目录 JS正则表达式 匹配与搜索 一.方括号,圆括号 二.修饰符 三.元字符 四.量词 身份证号码验证(简易版) 身份证号码规则: 1.地址码 2.年份码 3.月份码 4.日期码 5.顺序码 6. ...

  7. Android身份证号码验证

    最近用到身份证号码验证,在网上看了些资料,写了些方法记录下: 文章迁至:Java/Android通用身份证号验证 public class IDCardValidate {public static ...

  8. 15/18位身份证号码验证的正则表达式总结(详细版)

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

  9. easyUI身份证号码验证

    easyUI身份证号码验证,留存 方便以后使用 转自 https://www.cnblogs.com/pelli/p/6112996.html 并增加了部分代码. 代码思路:先在前端进行校验,合格之后 ...

最新文章

  1. Android系统自带样式(android:theme)(转)
  2. WebView 上传文件 WebChromeClient之openFileChooser函数
  3. Java基础班学习笔记(6)
  4. VTK:模型之MarchingCubes
  5. javafx查找子节点_JavaFX技巧29:使布局忽略不可见的节点
  6. DiskGenius的 “终止位置参数溢出”错误解决方法。
  7. ultilize什么意思_utilize是什么意思_utilize在线翻译_读音_用法_例句_含义-查字典网...
  8. Android音视频开发
  9. jQuery表单验证插件
  10. 2013年下半年 系统分析师 案例分析真题
  11. graphpad数据小数点_Image J和Graphpad如何对Western Blot条带灰度分析【干货】 | 每日生物评论...
  12. 今夜酒店特价与携程的江湖恩怨
  13. java回复功能_Java实现评论回复功能
  14. word文档被锁定,无法编辑怎么办?
  15. 小刘同学的第一百二十二篇博文
  16. ictclas4j java_Paoding, Ik, Jeasy, Ictclas4j分词工具
  17. CCF CSP 公共钥匙盒
  18. 小程序流量主怎么赚钱?小程序流量主怎么变现?
  19. robotframework测试web接口
  20. Core Animation学习笔记—第二节Setting up Layer Objects

热门文章

  1. Python+VSCode+Git【转】
  2. ebtables规则arpreply
  3. VMware虚拟机中摄像头打开显示黑屏或者摄像头打开无法弹出窗口的解决办法
  4. 《程序员修炼之道:从小工到专家》笔记-----第二章
  5. python爬虫实践篇--------飞猪网站资料爬取
  6. 如何使用最简单的方式进行企业内部知识共享
  7. mysql relaylog_MySQL relay log 详细参数解释
  8. Android冒险之旅-13-ListView的使用与优化
  9. DDoS攻击、CC攻击
  10. 康师傅-好吃真的看得见么