人人范文网 范文大全

EXCEL中如何提取身份证出生日期性别检验号码正确性

发布时间:2020-03-01 16:22:19 来源:范文大全 收藏本文 下载本文 手机版

EXCEL中如何提取身份证出生日期、性别、

检验身份证号码的正确性

中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:

15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。

18位:6位数字常住户口所在县市的行政区划代码,8位数字出生日期代码,3位数字顺序码和1位检验码。

其中3位数字顺序码,是为同一地址码的同年同月同日出生人员编制的顺序号,偶数的为女性,奇数的为男性。

1、提取籍贯地区的行政区划代码(A2为身份证号,下同)

15与18位通用:=LEFT(A2,6)

如果有一个编码和省份地区的对照表,可以用VLOOKUP函数来提取地区信息。

2、提取出生日期信息

15位:=--TEXT(19&MID(A2,7,6),\"#-00-00\")

18位:=--TEXT(MID(A2,7,8),\"#-00-00\")

15与18位通用:

=--TEXT(IF(LEN(A2)=15,19,\"\")&MID(A2,7,6+IF(LEN(A2)=18,2,0)),\"#-00-00\")

简化公式:=--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),\"#-00-00\")

(请将输入公式的单元格格式设置为日期格式)

1 / 4

3、提取性别信息

15位:=IF(MOD(RIGHT(A2),2)=1,\"男\",\"女\")

18位:=IF(MOD(MID(A2),17,1)=1,\"男\",\"女\")

15与18位通用:=IF(MOD(MID(A2,IF(LEN(A2)=15,15,17),1),2)=1,\"男\",\"女\")

简化公式:=IF(MOD(RIGHT(LEFT(A2,17)),2),\"男\",\"女\")

4、检验身份证号码的正确性

18位身份证号码的最后一位是检验码,它是根据身份证前17位数字依照规则计算出来的,其值0~9或X。一般情况只要有一位数字输入错误,依照规则计算后就会与第18位数不符。当然不排除按错误号码计算后恰好与检验码相符的情况,但这种情况出现的可能性较低。因此,对18位号码的验证采用如下公式:

=MID(\"10X98765432\",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(\"1:17\")),1)*2^(18-ROW(INDIRECT(\"1:17\")))),11)+1,1)=RIGHT(A2,1)

对于15位身份证,由于没有检验码,我们只能简单地去判断出生日期代码是否是一个有效的日期,避免输入一些像“731302”或“980230“等这样不存在的日期。

=ISNUMBER(--TEXT(19&MID(A2,7,6),\"#-00-00\"))

综合15位和18位后的通用公式为:

=IF(LEN(A2)=18,MID(\"10X98765432\",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(\"1:17\")),1)*2^(18-ROW(INDIRECT(\"1:17\")))),11)+1,1)=RIGHT(A2),IF(LEN(A2)=15,ISNUMBER(--TEXT(19&MID(A2,7,6),\"#-00-00\"))))

2 / 4

由于目前15位身份证号码已经很少了,如果对15位的号码不需要作进一步的判断,则公式可以简化成:

=IF(LEN(A2)=18,MID(\"10X98765432\",MOD(SUMPRODUCT(MID(A2,ROW(INDIRECT(\"1:17\")),1)*2^(18-ROW(INDIRECT(\"1:17\")))),11)+1,1)=RIGHT(A2),LEN(A2)=15)

将上面的公式放到B2单元格,如果结果为TRUE,则身份证号是正确的,结果为FALSE则是错误的。

你也可以将上述公式放在数据有效性中,防止录入错误的身份证号。操作方法:选择需要输入身份证的全部单元格区域,比如A2:A10,点菜单\"数据\"-\"有效性\",在\"允许\"的下拉框中选择\"自定义\",在\"公式\"输入上面的15位和18位通用公式,确定以后即可。注意:公式里的\"A2\"是你刚才选定要输入身份证的单元格区域的第一个单元格,如果你是要在C3:C20输入身份证号,则将公式里的\"A2\"改为\"C3\"。另外,你也可以先设置好某单个单元格的数据有效性(这时公式的A2改为选定的单元格),再用格式刷将其格式刷到其他需要相同设置的单元格。

5、15位升为18位

=IF(LEN(A2)=15,REPLACE(A2,7,,19)&MID(\"10X98765432\",MOD(SUMPRODUCT(MID(REPLACE(A2,7,,19),ROW(INDIRECT(\"1:17\")),1)*2^(18-ROW(INDIRECT(\"1:17\")))),11)+1,1),A2) 6、18位转换为15位

=IF(LEN(A2)=18,LEFT(REPLACE(A2,7,2,),15),A2) 注:LEN:检查计算单元格里的字符位数有多少并返回;

3 / 4

RIGHT:函数,从字符串右侧首字符开始,从右向左提取指定的字符,其功能和LEFT函数完全一样,只是方向不同。

REPLACE:语法形式:REPLACE(old_text,start_num,num_chars,new_text)

参数old_text:表示要替换其部分字符的文本

start_num:表示要用new_text替换的old_text中字符的位置 num_chars:表示使用new_text替换old_text中字符的个数 new_text:表示用于替换old_text中字符的文本 SUMPRODUCT:返回相应数组或区域乘积和; INDRECT:返回文本字符串所指定的引用; MID:提出指定位置字符串; MOD:求余函数;

另:EXCEL中18位号码校验用下列函数即可

=MID(\"10X98765432\",MOD(SUMPRODUCT(MID(A1,ROW(INDIRECT(\"1:17\")),1)*2^(18-ROW(INDIRECT(\"1:17\")))),11)+1,1)=RIGHT(A1,1) 返回TRUE为正确号码,反之FLASE;

4 / 4

EXCEL中如何提取身份证出生日期、性别、检验身份证号码的正确性

EXCEL提取身份证出生日期

Excel中利用身份证号码提取出生日期和性别

如何通过函数提取身份证中的出生日期

利用身份证号自动提取出生日期和年龄性别

excel中由身份证号求出生日期、性别、年龄

Excel输入出生日期、年龄自动计算、身份证提取日期、年度统计

身份证计算岁数出生年月性别

电子表格中根据身份证自动识别性别 出生年月公式

EXCEL中根据身份证号计算出生日期、年龄、性别、月份间隔

EXCEL中如何提取身份证出生日期性别检验号码正确性
《EXCEL中如何提取身份证出生日期性别检验号码正确性.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档