excel表格在同一张表格里如何检查身份证号码和名字对照是否一致

更新时间:2024-11-05 18:44:32 阅读: 评论:0


2023年5月24日发(作者:water pollution)

竭诚为您提供优质文档/双击可除

excel表格在同一张表格里如何检查身

份证号码和名字对照是否一致

篇一:如何用excel来判断身份证号码是否正确

如何用excel来判断身份证号码是否正确?

没有参照系,只要格式、位数没错,就难以辨其是非了;

而给出参照系,即可判别:

★按补充题意,用性别判别对与错:

1、如果以c列输入性别为准,在b列输入公式

=iF(iF(mod(mid(a1,17,1),2)=0,"","")=c1,"17

位正确","17位错"),向下复制到需要处如b3,即可判

a列号码第17位数码之对错,如黄区域所示。

2、如果以a列输入号码为准,在d列输入公式

=iF(iF(mod(mid(a1,17,1),2)=0,"","")=c1,"c列正

","c列填错"),向下复制到需要处如d3,即可判别c

填写之对与错,如绿区域所示。

3、若以c列为准,还可以用红标示a列数码以示其

1 9

17位错误,以与b列相呼应。请选中a1:a3在“格式/条件

格式”中查看公式和格式具体设置。

附件:辨别.xls

篇二:excel中判断身份证号的几个方法

excel中判断身份证号是否正确的方法探讨

身份证有15位和18位两种,身份证位数是否正确,我

们可以用len函数判断。但身份证上的日期是否合法:月份

是否在1-12之间,日期是否在1-31之间,并且2月份只有

2829天,其他月份3031天,都不能超过范围。另外

一般规定6岁以上才可以办理身份证,也就是年份也有一个

超范围的可能性。综合起来看,有三类错误:“身份证位数

不对”“月日错误”“年份错误”

假定身份证号码在b1单元格,下面的公式可以综合判

断以上三种错误:

=iF(oR(len(b1)=18,len(b1)=15),iF(len(b1)=18,iF(oR(m

onth(date(1*(mid(b1,7,4)),1*(mid(b1,11,2)),1*(mid(b

1,13,2))))1*(mid(b1,11,2)),day(date(1*(mid(b1,7,4))

,1*(mid(b1,11,2)),1*(mid(b1,13,2))))1*(mid(b1,13,2)

)),"月日错误

",""),iF(len(b1)=15,iF(oR(month(date(1*(mid(b1,7,2)

2 9

)+1900,1*(mid(b1,9,2)),1*(mid(b1,11,2))))1*(mid(b1,

9,2)),day(date(1*(mid(b1,7,2))+1900,1*(mid(b1,9,2))

,1*(mid(b1,11,2))))1*(mid(b1,11,2))),"月日错误

",""))),"身份证位数不对

")&iF(and(len(b1)=18,1*mid(b1,7,4)>yeaR(today())-6)

,"年份错误","")公式首先对身份证长度进行判断,是否等

15位或18位,然后对18位和15位身份证分别判断月日

是否合法,最后判断18位身份证的年份是否合法。这里的

关键是如何判断日期是否合法。现将判断方法介绍如下:

先用mid函数取得身份证中的年月日,用乘1的方法转

换为数值,date函数转换成一个日期。这一转换过程中,

超范围的月份和日期同样可以正确转换,比如月份数为15

转换后月份数为3,而年份数已经加上1,又如19630835

换后就成了196394日。这时我们用monthday两个

函数从转换后的日期中分别取出月日与身份证中原有的月

日比较,只要有一项不符该日期就是不合法。

该判断方法不错,缺点是公式太长。

欢迎各位大侠批评指正。

根据网友的提供资料,现有一种更加简单的判断公式如

3 9

=iF(iseRRoR(1*text((len(b1)=15)*19&mid(b1,7,6+(len(

b1)=18)*2),"#-00-00")),"错误","")

补充:预防身份证号码输入时长度和日期错误的方法:

选中b,"数据""有效性""设置""允许"选择"

自定义"→输入下面的公式

=not(oR(iseRR(--text(mid(b1,7,len(b1)/2-1),"#-00-00

")),and(len(b1)15,len(b1)18)))

点击"确定"即可。

身份证判断男女

=iF(mod(iF(len(a1)=15,mid(a1,15,1),mid(a1,17,1)),2)

=1,"","")

身份证提取日期

=iF(len(c3)=18,mid(c3,7,4)&"-"&mid(c3,11,2)&"-"&mid

(c3,13,2),"19"&mid(c3,7,2)&"-"&mid(c3,9,2)&"-"&mid(

c3,11,2))

篇三:如何用excel验证身份证号码是否符合规则

excel中如何提取身份证出生日期、性别、检验身份证

码的正确性

4 9

中国居民身份证号码是一组特征组合码,原为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")(请将输入公式的单元格格式设置为日期格式)

3、提取性别信息

5 9

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(indiRe

ct("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位后的通用公式为:

6 9

=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"))))

由于目前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改为选定的单元格),再用格式刷将其格式刷到其他需要

7 9

相同设置的单元格。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),a

2)

6、18位转换为15位

=iF(len(a2)=18,leFt(Replace(a2,7,2,),15),a2)

7、示例

表中公式:

b2=iF(len(a2)=18,mid("10x98765432",mod(sumpRoduct(m

id(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"))))

c2=iF(a2"",text((len(a2)=15)*19&mid(a2,7,6+(len(a2)

=18)*2),"#-00-00")+0,)d2=iF(a2"",iF(mod(Right(leFt(

a2,17)),2),"",""),)

e2=iF(a2"",datediF(text((len(a2)=15)*19&mid(a2,7,6+

(len(a2)=18)*2),"#-00-00"),today(),"y"),)

8 9

F2=iF(a2"",Vlookup(leFt(a2,2),地区表!a:d,2,),)

h2=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)i2=iF(len(a2)=18,leFt(Replace(a2,7,2,),15),a2)

9 9


本文发布于:2023-05-24 11:26:35,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/falv/fa/86/105583.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 站长QQ:55-9-10-26