将Excel函数灵活运用到身份证的查询上

2018-06-21 02:11:52来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

对于身份证大家肯定不会陌生,老式的15位号码,新一代18位。在Excel中经常需要根据身份证号码来提取一些信息,或者进行判断。光靠眼力去看,显然不够效率。下面我就将Excel函数运用到这个上面,大家学着做。

类型格式

15位身份证:前2位表示所属省份代码,3~6位表示所属城市和区县代码,7~12表示出生日期,格式为YYMMDD,13~15位是个人顺序码,其中第15位可以标识性别,为奇数表示男性,为偶数表示女性。

18位身份证:前2位表示所属省份代码,3~6位表示所属城市和区县代码,7~14表示出生日期,格式为YYYYMMDD,15~17位是个人顺序码,其中第17位可以标识性别,为奇数表示男性,为偶数表示女性。第18位是校验位,由前17位通过计算求得。

类型和格式

正确输入

因为Excel单元格只支持15位有效数字,输入多了就不能完全显示。这样就导致新一代身份证号码输入时不便,为了解决这个问题,我们可以采取文本输入的方法,可以在输入号码之前,先添加一个半角的单引号再输入其他数字,这样完成输入的结果就是一个文本型数据。或者也可以在输入之前事先将单元格格式设置为文本再行输入。但是如果在输入完成以后再更改单元格格式就不会有效果。

正确输入

自动验证输入

①条件1:输入长度为15位或18位,函数公式可以这样写:=OR(LEN(A1)=15,LEN(A1)=18)

②条件2:前17位必须都是数字,公式:=ISNUMBER(-LEFT(A1,17))

③条件3:如果不全都是数字,那么它只能是18位,并且末尾字符是字母“X”,公式:=OR(ISNUMBER(-A1),AND(LEN(A1)=18,RIGHT(A1)="X"))

自动验证输入

提取生日

①提取6位或8位生日数字,=MID(A1,7,IF(LEN(A1)=15,6,8))

②对于15位号码,需要补足前面两位“19”数字,=RIGHT(19&MID(A1,7,IF(LEN(A1)=15,6,8)),8)

③将上面得到的8位数字转换成真实日期数值,=TEXT(RIGHT(19&MID(A1,7,IF(LEN(A1)=15,6,8)),8),"0-00-00")+0

提取生日

计算年龄

年龄的计算实际上就是通过前面得到的出生日期来用DATEDIF函数计算到当前所相差的年份数(周岁):

=DATEDIF(TEXT(RIGHT(19&MID(A1,7,IF(LEN(A1)=15,6,8)),8),"0-00-00"),NOW(),"Y")

计算年龄

判断性别

①提取数字:=MID(A1,15,3),对于15位身份证号码,上述公式提取到是其末位数字,不包含其他字符占位。而对于18位的身份证号码,上述公式提取到的是其15~17位数字。

②判断奇偶性:=IF(MOD(MID(A1,15,3),2), "男","女")。通过MOD函数除以2取余数来进行奇偶判断,如果余数为1,表示奇数,得到男性判断,如果余数为0,得到女性判断。

判断性别

上面大篇幅的介绍了15位和18位身份证号码的函数公式运用,自从2013年1月1日开始,第一代身份证已经不允许属于,这样我们函数公式也能够简化:

验证输入:=AND(LEN(A1)=18,ISNUMBER(-LEFT(A1,17)),OR(ISNUMBER(-A1),RIGHT(A1)="X"))

提取生日:=TEXT(MID(A1,7,8),"0-00-00")+0

计算年龄:=DATEDIF(TEXT(MID(A1,7,8),"0-00-00"),NOW(),"Y")

判别性别:=IF(-1^MID(A1,15,3)=1,"女","男")

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Excel2007单元格填充功能失效如何解决

下一篇:Excel2013数据透视表的简要分析概括