如何根据身份证筛选出所有18岁至55岁的人
当我们打开手机的闪光灯,对着身份证国徽这面的右下角照一照,就会发现里面有一个芯片。身份证的数据就存在这个芯片里,身份证的周围有线圈。
感应设备通过发射电磁波给芯片供电,然后通过线圈就能完成数据读取了。
要根据身份证筛选出所有18~55的人,只要检索身份证号中的第7~10位数字,即可以筛选出所有18~55岁的人。
我国现行的身份证号编码中,共有18位数字构成。
其中,身份证号码的第1、2位是省份代码;
第3、4位是地、市代码;
第5、6位是区、县代码;
7~14位是出生年月日代码;
15、16位是所在地派出所的代码;
第17位是性别代码,男性为奇数,女性为偶数;
最后一位是校验码,有的人身份证是0~9中一个数字,也有的人是一个X。由于直接用10来做尾号,身份证号码会变成19位,而用罗马数字X来代表10,既合理又能保证身份证号码依然是18位。
明确了身份证号编码的规则后,只要检索身份证号中的第7~10位数字,即可以筛选出所有18~55岁的人。
并可以在excel制表时通过MID函数等获取数据,简单分析获得相关的信息,比如年龄、生日、性别等。
具体来说,由于今年是2021年,凡检索身份证中第7~10位数字是小于1956~2003,亦即1956~2003年前生人的,都在18~55岁的年龄段中。
希望我的回答能够对你有所帮助。
谢谢关注。
Excel中,如何利用身份证号自动来识别男性女性
谢谢邀请,头条号“CACA数据闲聊室”,专注Excel操作,欢迎关注!
针对Excel中如何利用身份证号自动来识别男性女性这个问题?我们首先得了解我国身份证号的组成结构,知道了身份证号不同位数所代表的的含义后,就可以针对性的设计出相对完善处理方案。
(1)目前我们现行使用的是18位的二代身份证号,其不同位数所代表意思如下图所示
18位身份号代表信息
左数第1、2位表示省份代码
左数第3、4位表示城市代码
左数第5、6位表示区县代码
左数第7-14位表示出生年月代码
左数第15-17位表示同一地区范围内,对同年同月同日出生的人员编定的顺序码,其中第17位的奇数代表男性,偶数代表女性
左数第18位表示校验码(0-9,X)
虽然目前一代的15位身份证号码已不再使用,但在一些情况下,部分表格和数据库中还会留存着15位身份证号的信息。所以我们也需要了解下这类身份证号的组成结构
(2)15位身份证号不同位数所代表意思如下图所示
15位身份号代表信息
左数第1、2位表示省份代码
左数第3、4位表示城市代码
左数第5、6位表示区县代码
左数第7-12位表示出生年月代码
左数第13-15位表示同一地区范围内,对同年同月同日出生的人员编定的顺序码,其中第15位的奇数代表男性,偶数代表女性
(3)18位身份证号和15位身份证号的区别
一:18位身份证号的出身年月代码有8位,其中代表年份的有4位。15位身份证号的出身年月代码有6位,其中代表年份有2位。
二:18位身份证号最后一位是校验码,15位身份证号没有校验码
了解了身份证号的组成结构后,对于18位的身份证号,我们可以判断第17位数的奇偶来识别是男性还是女性。对于15位的身份证号,可以判断第15位数的奇偶来识别男性还是女性。
(4)我们先从18位身份证号开始设计函数,操作步骤如下图所示
上图函数公式:=IF(MOD(MID(C2,17,1),2)=1,"男","女")
函数解析:MID(C2,17,1)
MID函数的作用是从原文本数据中截取指定位置,指定长度的字符串。
C2表示要截取数据的原文本
17表示从第17位开始截取
1表示截取长度为1的字符串
整个函数的作用是把18位身份证号中的第17位数提取出来
函数解析:MOD(MID(C2,17,1),2)
MOD函数的作用是求余
这里MID(C2,17,1)是被除数
2表示除数
整个函数相当于(MID(C2,17,1))%2,数字奇偶数的判断我们通常都是通过(被除数%2)这样的思路来操作的。余数为0视为偶,余数为1视为奇。
函数解析:=IF(MOD(MID(C2,17,1),2)=1,"男","女")
整个函数的思路就是
先用MID函数提取身份证号中能区分性别位数上的数字。
再利用MOD函数求余判断是奇数还是偶数。
最后利用IF条件函数判断如果结果是奇数就是“男”,否则就是“女”。
(5)对于15位身份证号获取性别的函数公式设计,如下图所示
上图函数公式:=IF(MOD(MID(C3,15,1),2)=1,"男","女")
15位身份证号的性别获取公式原理同18位身份证号,唯一区别是提取的位置一个是第17位,一个是第15位。这里就不再做解析了。
(6)对于表格中既含有15位身份证号,又含有18位身份证号的情况。
函数公式设计思路如下图所示
上图函数公式:=IF(LEN(C2)=18,IF(MOD(MID(C2,17,1),2)=1,"男","女"),IF(MOD(MID(C2,15,1),2)=1,"男","女"))
函数解析:LEN(C2)=18
LEN函数的作用是返回文本串的字符串数
这里的作用是获取C2单元格中的身份证号的位数并判断是否等于18,其返回值为TRUE或是FALSE
函数解析:IF(MOD(MID(C2,17,1),2)=1,"男","女")
18位身份证号的性别获取公式
函数解析:IF(MOD(MID(C2,15,1),2)=1,"男","女")
15位身份证号的性别获取公式
函数解析:=IF(LEN(C2)=18,IF(MOD(MID(C2,17,1),2)=1,"男","女"),IF(MOD(MID(C2,15,1),2)=1,"男","女"))
整个函数的设计思路是
利用IF函数先判断LEN函数获取的身份证号的位数是否是18位,如果是,则调用18位身份证号的性别获取公式IF(MOD(MID(C2,17,1),2)=1,"男","女"),否则,调用15位身份证号的性别获取公式。
(7)扩展:18位15位身份证号的性别获取公式还有一个更简洁的
=IF(MOD(MID(C2,(LEN(C2)=18)*2 15,1),2),"男","女")
这个公式对于Excel老鸟来说理解起来没什么难度,但对于刚接触Excel函数的小伙伴来说还是有点挑战的。这个函数整体的解析我就不做了,把其中的难点跟各位小伙伴分析一下。
函数解析:(LEN(C2)=18)*2 15
“(LEN(C2)=18)*2 15”这个公式,仔细观察的小伙伴也不难发现其代表的是MID函数中第二个参数,用于指定截取数据的开始位置。
根据Excel中TRUE和FALSE乘以数字会对应变为1和0的特性,
如果LEN(C2)=18为TRUE,则(LEN(C2)=18)*2 15就变为“1*2 15”得出17的结果,代表18位身份证号中的性别获取位置。
如果LEN(C2)=18为FALSE,则(LEN(C2)=18)*2 15就变为“0*2 15”得出15的结果,代表15位身份证号中的性别获取位置。
知道了这个公式的含义,结合之前解释的MID函数MOD函数以及IF函数,整个函数就很好理解了。
这是我对“Excel中,如何利用身份证号自动来识别男性女性?”的回答,希望对您有所帮助。谢谢!