身份证号,大家都不陌生,但是对于其包含的信息可能并不是特别了解,除了最常见的出生年月,性别外,还包含哪些信息?如果要在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岁退休为例)
???方法:
在目标单元格中输入公式:=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到了吗?如果亲有更多的关于身份证号码的应用,不妨在留言区留言讨论哦!