身份证号码中隐藏着这么多秘密都不知道,那就真的Out了

发布时间:2021-08-30 Excel技巧

  身份证号,大家都不陌生,但是对于其包含的信息可能并不是特别了解,除了最常见的出生年月,性别外,还包含哪些信息?如果要在Excel中进行计算,应该怎么操作呢?

  一、正确输入身份证号码。

  目的:在单元格中正确的输入身份证号码。

  

 

  方法:

  首先输入“'”(单撇号),紧接着输入身份证号码。

  解读:

  1、Excel最长能够保存的数字为15位,而身份证号码为18位,所以默认情况下输入身份证号码后后三位数被替换为0。

  2、除了在号码前添加“'”(单撇号)外,还可以提前将单元格的格式设置为“文本”。

  二、从身份证号码中提取出生年月。

  1、公式法。

  

 

  方法:在目标单元格中输入公式:=TEXT(MID(C3,7,8),00-00-00)。

  解读:1、分析身份证号码,发现从第7位开始长度为8的字符串为“出生年月”。所以需要将其从身份证号码中提取出来。

  2、Mid函数的作用为:返回文本字符串中从指定位置开始长度为指定值的字符。语法结构为:=Mid(字符串,开始位置,字符长度)。如=MID(C3,7,8)返回的结果为“19650821”。

  3、如果仅用Mid函数提取身份证号码中的8为数字,其并不是“出生年月”,因为出生年月是“年月日”的形式,所以需要对其进行格式设置,而Text函数的作用为根据指定的代码对指定的值进行格式设置,语法结构为=Text(字符串,格式代码),其中“00-00-00”为日期格式代码。

  2、快捷键法。

  

 

  方法:1、在第一个目标单元格中输入第一个人出生年月的8位数字。

  2、选取目标单元格,包括第一个输入内容的单元格,快捷键Ctrl+E。

  3、【数据】-【分列】-【下一步】-【下一步】,选择【列数据格式】中的【日期(YMD)】并【完成】。

  解读:如果不对智能填充的值【分列】,则仅仅为8为数字,并不是“出生年月”。

  三、根据身份证号码计算性别。

  

 

  方法:在目标单元格中输入公式:=IF(MOD(MID(C3,17,1),2),男,女)。

  解读:1、分析身份证号码不难发现,性别隐藏在第17位,如果为“奇数”,则为“男”,否则为“女”。

  2、Mod函数的作用为计算两个数字相除的余数,语法结构为:=Mod(被除数,除数)。如=Mod(5,2)的返回结果为1。

  3、公式=IF(MOD(MID(C3,17,1),2),男,女)中首先用Mid函数提取身份证号码的第17位,然后将返回的值作为Mod函数的被除数,除数为2,并将Mod函数的计算结果作为IF函数的判断条件,如果条件成立,则返回“男”,否则返回“女”。

  四、根据身份证号码计算年龄。

  

 

  方法:在目标单元格中输入公式:=datedif(D3,TODAY(),y)。

  解读:1、Datedif函数为系统隐藏函数,其功能为按照指定的计算方式计算两个日期之间的差值。语法结构为:=Datedif(开始日期,结束日期,统计方式)。常用的统计方式有“Y”、“M”、“D”,分别为“年”、“月”、“日”。

  2、日常生活中,问“多少岁了”指的是从出生日期到今天经过了多少年。所以结束日期用Today()函数获取,只要你打开表格,其年龄时自动更新的,而不是不定不变的。如果你的年龄要按“月”为单位统计,则只需将公式中的“y”替换为“m”即可。

  3、如果给定的表单中没有“出生年月”列,此时就先要从身份证号码中提取出生年月,然后再计算年龄,此时的公式为:=DATEDIF(TEXT(MID(C3,7,8),00-00-00),TODAY(),y),一步到位。

  五、利用身份证号码计算退休年龄。

  (以男60岁、女50岁退休为例)

  

 

  方法:1、在目标单元格中输入公式:=EDATE(D3,MOD(MID(C3,17,1),2)*120+600)。

  解读:1、Edate函数的作用为:返回指定日期之后数月的日期,语法结构为:=Edate(开始日期,月份)。如=Edate(2020/4/19,12)的返回结果为:2021/4/19。

  2、公式=EDATE(D3,MOD(MID(C3,17,1),2)*120+600)中,首先判断其性别,如果为男性,则在D3的基础上+1*120+600个月,如果为女性,则在D3的基础上+0*120+600个月。

  3、如果给定的表单中没有“出生年月”列,此时就先要从身份证号码中提取出生年月,然后再计算退休年龄,此时的公式为:=EDATE(TEXT(MID(C3,7,8),00-00-00),MOD(MID(C3,17,1),2)*120+600)。

  4、如果按照“男60岁,女55岁”计算,则公式为:=EDATE(D3,MOD(MID(C3,17,1),2)*60+660)。

  六、判断身份证号码是否重复。

  1、常规操作(错误方法)。

  

 

  方法:在目标单元格中输入公式:=IF(countif(C$3:C$9,C3)1,重复,)。

  解读:公式中用Countif函数统计当前值在指定范围内的个数,如果>1,返回“重复”……其实思路没有任何问题,但重点在于Excel中的数值精度,目前只支持15位,15位以后的值全部按照0来对待,所以统计出的结果为“重复”。

  2、正确做法。

  

 

  方法:在目标单元格中输入公式:=IF(COUNTIF(C$3:C$9,C3*)1,重复,)。

  解读:和上述的公式相比较,只是在C3后添加了“*”,但结果截然不同,Why?其实很简单,就是加上通配符“*”之后,原来的数值变为了文本。

  七、禁止录入重复的身份证号码。

  

 

  方法:1、选定目标单元格。

  2、【数据】-【数据验证】,选择【允许】中的【自定义】,在【公式】中输入:=COUNTIF(C:C,C3“*”)=1。

  3、单击【出错警告】标签,录入警告信息并【确定】。

  八、根据身份证号码查询引用

  

 

  方法:在目标单元格中输入公式:=VLOOKUP(G3,C3:D9,2,0)。

  1、Vlookup函数为常见的查询引用函数之一,其语法结构为:=Vlookup(查询值,数据范围,返回列数,匹配模式)。当匹配模式为“0”时为精准匹配,为“1”时为模糊匹配。

  2、由于每一个人的身份证号码是唯一的,所在身份证号码就是“索引值”,代表唯一的数值,结合Vlookup或Lookup等获取其他信息。

  结束语:

 

  从文中可以看出,身份证号码中隐藏着很多信息,除了车身年月、性别外,还可以计算年龄、退休年龄、作为“索引值”等……对于使用技巧,你Get到了吗?