当前位置:文档之家› 两个关于身份证号码的EXCEL小函数

两个关于身份证号码的EXCEL小函数

两个关于身份证号码的EXCEL小函数
两个关于身份证号码的EXCEL小函数

两个关于身份证号码的EXCEL小函数

办公室工作中,经常要进行员工身份证号码的录入(比如员工参加各类考试时填写报名表、录入个人养老保险及医疗保险金信息等等)。本人在工作中,为了提高身份证号码录入的效率和质量,设计了两个关于身份证号码的EXCEL函数“IDcard_15to18”和“IDcard_Check”,分别实现这样的功能:1、当需要录入某人员的新身份证号码,手头只有该人员工的15位老身份证号码,可用“IDcard_15to18”函数将老号码转换成新号码。2、当在EXCEL表格中手工录入完全部人员的18位新身份证号码后,如果不能确保录入的正确性,可用“IDcard_Check”函数进行正确性校验。“IDcard_15to18”函数的实现原理是:15位老身份证号码的第6、7位之间加上出生年份的前两位(“19”或“20”)得到17位号码,用这17位号码根据公式计算得出校验位(新身份证号码的第18位),即得到18位的新身份证号码(详细转换规则见附件2)。“IDcard_Check”函数的实现原理是:用新身份证号码的前17位计算得出校验位,再将计算得出的校验位和实际检验位比较,如果相等,则校验正确,否则该身份证号码有错。该函数中还加入了出生日期的检验,如出生月份不在1到12之间,则报错。

实现方法如下:

打开存有身份证号码的表格,在菜单中选择“工具(T)”-“宏(M)”-“V isual Basic 编辑器”,打开V isual Basic编辑器,在编辑器菜单中选择“插入(I)”-“模块(M)”,打开模块窗口,这时光标停留在模块窗口内。将“附件1:函数代码”的内容全部复制到模块窗口内,点磁盘图标保存,然后关闭编辑器,函数建立完成。

选中存有身份证号码的EXCEL表格,在菜单中选“插入(I)”-“函数(F)”,出现插入函数窗口(见下图),在函数窗口的“或选择类别”后选择“用户定义”,出现刚才定义的两个函数的名称“IDcard_15to18”和“IDcard_Check”,“IDcard_15to18”函数用来将老身份证号码转换为新身份证号码,这个函数有两个参数,第一个参数为要转换的15位老身份证号码,第二个参数为4位出生年份的前两位,例如B3单元格中存有一15位老身份证号码,并知此人的出生年份为“19XX”年,可在B4单元格中录入“=IDcard_15to18(b2,19)”,即得到此人的18位新身份证号码;“IDcard_Check”函数用来校验18位身份证号的一致性,例如B3单元格中存有一新身份证号,在可在B4单元格中录入“=IDcard_Check(B2)”对该号码进行校验,如检验正确则显示“校验正确!”,否则显示“此身份证号有误!”。这两个函数和普通EXCEL函数用法相同,可以拖放来实现身份证号的批量生成和校验。

两点说明:1、要使函数生效,需在EXCEL菜单中选择“工具”--“宏”—“安全性”,将安全性设置为“中”或“低”,如果安全性设置为“中”,在打开EXCEL表格时会出现一提示框,在提示框中选择“启用宏”。2、“IDcard_Check”函数可排除绝大多数录入错误,但不能保证身份证号码百分之百正确,因为当录入的身份证号码的错误位数多于一位,可能出现根据错误号码计算出的校验位和实际校验位相同的情况。

附件1:函数代码(不包括本行)

Function IDcard_15to18(IDcardNumber As String, YY As Integer) As String

Dim NumStr As String, YinZi As String, S As Long, Y As Long

Y inZi = " 7 910 5 8 4 2 1 6 3 7 910 5 8 4 2"

NumStr = Trim(IDcardNumber)

If Len(NumStr) <> 15 Then

' MsgBox "老身份证号码长度不为15位!"

IDcard_15to18 = "老身份证号码长度不为15位!"

Exit Function

End If

NumStr = Mid(NumStr, 1, 6) & YY & Mid(NumStr, 7, 10)

S = 0

For i = 0 To 16

S = S + V al(Mid(NumStr, i + 1, 1)) * V al(Mid(YinZi, i * 2 + 1, 2))

Next

Y = S Mod 11

Select Case Y

Case 0

NumStr = NumStr & "1"

Case 1

NumStr = NumStr & "0"

Case 2

NumStr = NumStr & "X"

Case 3

NumStr = NumStr & "9"

Case 4

NumStr = NumStr & "8"

Case 5

NumStr = NumStr & "7"

Case 6

NumStr = NumStr & "6"

Case 7

NumStr = NumStr & "5"

Case 8

NumStr = NumStr & "4"

Case 9

NumStr = NumStr & "3"

Case 10

NumStr = NumStr & "2"

End Select

IDcard_15to18 = NumStr

End Function

Function IDcard_Check(IDcardNumber As String) As String

Dim NumStr As String, YinZi As String, Check_Digit As String, S As Long, Y As Long Y inZi = " 7 910 5 8 4 2 1 6 3 7 910 5 8 4 2"

NumStr = Trim(IDcardNumber)

If Len(NumStr) <> 18 Then

IDcard_Check = "身份证号码长度不为18位!"

Exit Function

ElseIf V al(Mid(NumStr, 7, 1)) < 1 Or V al(Mid(NumStr, 7, 1)) > 2 Then

IDcard_Check = "出生年份误!"

Exit Function

ElseIf V al(Mid(NumStr, 11, 2)) < 1 Or V al(Mid(NumStr, 11, 2)) > 12 Then IDcard_Check = "出生月份误!"

Exit Function

ElseIf V al(Mid(NumStr, 13, 2)) < 1 Or V al(Mid(NumStr, 13, 2)) > 31 Then IDcard_Check = "出生日误!"

Exit Function

End If

If Mid(NumStr, 18, 1) = "x" Then

NumStr = Mid(NumStr, 1, 17) & "X"

End If

S = 0

For i = 0 To 16

S = S + V al(Mid(NumStr, i + 1, 1)) * V al(Mid(YinZi, i * 2 + 1, 2)) Next

Y = S Mod 11

Select Case Y

Case 0

Check_Digit = "1"

Case 1

Check_Digit = "0"

Case 2

Check_Digit = "X"

Case 3

Check_Digit = "9"

Case 4

Check_Digit = "8"

Case 5

Check_Digit = "7"

Case 6

Check_Digit = "6"

Case 7

Check_Digit = "5"

Case 8

Check_Digit = "4"

Case 9

Check_Digit = "3"

Case 10

Check_Digit = "2"

End Select

If Mid(NumStr, 18, 1) <> Check_Digit Then

IDcard_Check = "此身份证号码检验错!"

Else

IDcard_Check = "校验正确!"

End If

End Function

附件2:18位身份证号码转换规则:

18位居民身份证的号码是按照国家的标准编制的,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。其含义如下:

1. 地址码:表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。

2. 出生日期码:表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位、2位数字表示,之间不用分隔符。

3. 顺序码:表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。

校验的计算方式:

1. 对前17位数字本体码加权求和

公式为:S = Sum(Ai * Wi), i = 1, ... , 17

其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

2. 以11对计算结果取模

Y = mod(S, 11)

3. 根据模的值得到对应的校验码

对应关系为:

Y值:0 1 2 3 4 5 6 7 8 9 10 校验码:1 0 X 9 8 7 6 5 4 3 2 附件:

15位身份证号变18

位.xls

Excel表格中根据身份证号码自动填出生日期、计算年龄[1]

Excel表格中根据身份证号码自动填出生日期、计算年龄18位身份证号码转换成出生日期的函数公式:如果E2中是身份证,在F2 中求出出生日期,F2=DATE(MIDB(E2,7,4),MIDB(E2,11,2),MIDB(E2,13,2)) 自动录入男女:=IF(MOD((IF(LEN(e2)=18,MID(e2,17,1),MID(e2,15,1))),2)=0,"女","男") 15/18位都可以的公式:转换出生日期: =IF(LEN(e2)=18,TEXT(MID(e2,7,8),"#-00-00"),"19"&TEXT(MID(e2,7,6),"#-0 0-00")) 自动录入男女:=IF(E2="","",IF(MOD(RIGHT(LEFT(E2,17),1),2)=0,"女","男")) 计算年龄(新旧身份证号都可以): =IF(AND(E2=""),"",IF(MIDB(E2,7,2)="19",107-MIDB(E2,9,2),107-MIDB(E2,7 ,2))) WPS表格提取身份证详细信息 前些天领导要求统计所有员工的性别、出生日期、年龄等信息,并且要得很急。而我们单位员工人数众多,短时间内统计相关信息并且输入计算机几乎是不太可能的。幸好在以前的一份金山表格中我们曾经统计有所有员工的身份证号码,而身份证中正有我们所需要的性别、出生日期、年龄等信息的。所以,干脆,还是直接在金山表格中从身份证号码提取相关的信息吧。 身份证号放在A2单元格以下的区域。我们需要从身份证号码中提取性别、出生日期、年龄等相关信息。由于现在使用的身份证有15位和18位两种。所以,在提取相关信息时,首先应该判断身份证号码的数字个数,然后再区别不同情况进行相关处理。 一、身份证号的位数判断 在B2单元格输入如下公式“=LEN($A2)”,回车后即可得到A2单元格身份证号码的数字位数,如图1所示。LEN($A2)公式的含义是求出A2单元格字符串中字符的个数。由于当初身份证输入时就是以文本形式输入的,所以用此函数正可以很方便地求到身份证号码的位数。

Excel如何根据身份证号码自动计算年龄

Excel如何根据身份证号码自动计算年龄方法1 1.打开要在excel中编辑的表格 2.如图所示,在身份证号后面的空格即年份一列第一格输入公式=MID(A2,7,4),输入完成后按下enter键,A2指身份证号的单元格,数字7为数字开始位置,4为字符个数 3.按下enter键后,如图所示年份一栏已显示出出生年份 4.如图所示,选中已显示年份的一格,鼠标点击绿色框右下角的小方框并下拉至身份证号的最后一栏 5.如图所示,每个身份证号对应的年份都显示出来了 6.如图所示再在年龄一列第一格输入公式2018-MID(A2,7,4),按下enter键 7.即可看到年龄已被计算出来为21岁,如图所示鼠标点击绿色框右下角的小方框并下拉至身份证号的最后一栏 8.如图所示,用这种“自动填充”功能,就能让同类型单元格有同样的公式计算结果 方法2 1.打开要在excel中编辑的表格,并选中年龄那一列的第一格 2.点击公式 3.再点击插入函数 4.在弹出来的对话框中在选择函数那一栏点击全部 5.下拉右侧的滚动条找到MID函数点击它

6.点击右下角的确定 7.在弹出来的对话框中点击第一格 8.然后点击Excel文档中的A2单元格 9.在第二格中输入数字7,表示数字开始位置 10.在第三格中输入数字4,表示字符个数为四个 11.最后单击确定 12.即可看到该身份证号的年份已经算出来了 13.然后在该公示前输入2018-即公式2018-MID(A2,7,4)按下enter键 14.即可看到年龄计算出来为21岁,下拉该单元格右下角的小黑方使下面的单元格拥有同样的计算格式 15.最后即可看到所有的年龄就被计算出来了

最新 第二代身份证号码提取出生年月日的公式 (很简单)

1、第二代身份证号码提取出生年月日的公式: =MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2) 注:A是列,1是行,&在数字键7的上方。 2、第二代身份证号码提取性别男、女的公式: =IF(MOD(MID(A1,17,1),2),"男","女") 注:A是列,1是行。 3、excel用身份证号算年龄的工式 比如身份证号保存在a1单元格,那么可以使用=mid(a1,7,4)来取出出生年,再用当前年份减去这个就是年龄了。 4、提取身份证出生年月 ="19"&MID(B1,9,2)&"年"&MID(B1,11,2)&"月"&MID(B1,13,2)&"日" 5、提取身份证年龄 =YEAR(NOW())-YEAR(IF(LEN(B1)=18,DATE(MID(B1,7,4),MID(B1,11,2),M ID(B1,13,2)),DATE(MID(B1,7,2),MID(B1,9,2),MID(B1,11,2)))) 6、提取身份证性别 =IF(LEN(B1)=15,IF(MOD(MID(B1,15,1),2)=1,"男","女"),IF(MOD(MID(B1,17,1),2)=1,"男","女")) 7、公式内的“B1”代表的是输入身份证号码的单元格。 Excel自动提取身份证中生日和性别以及年龄 (注意:以B2单元格中是18位身份证号为例) 一、提取出生日期的输入公式 =MID(B2,7,4)&"年"&MID(B2,11,2)&"月"&MID(B2,13,2)&"日" 二、判断性别“男女”的输入公式

=IF(MID(B2,17,1)/2=TRUNC(MID(B2,17,1)/2),"女","男") 三、利用身份证号码求年龄 =IF(B2="","",DATEDIF(TEXT((LEN(B2)=15)*19&MID(B2,7,6+(LEN (B2)=18)*2),"#-00-00"),TODAY(),"y")) 八、计算年龄的公式? datedif(开始日期,结束日期,"M") 九、用公式计算最大年龄? max(D3:D21) 十、用公式计算25--35岁之间的人数? =COUNTIFS(D3:D21,">"&25,D3:D21,"<"&35) 十一、计算25岁以下的人数? =COUNTIF(D3:D21,">"&25) 十二、计算25岁以下人数的比例? =COUNTIF(D3:D21,">"&25)/count(D3:D21) 十三、用excel做表输入年月日,可以变成例如1986-01-01的格式吗?能的话怎么变? 先选中单元格,鼠标右击,“设置单元格格式”,“数字”,“自定义”,在类型处输入 e-mm-dd 确定 十四、1.自动录入性别: “=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))” if假如(len(C2)得到C2的字符长度等于15,[15时mod除以2的余数(取mid(C2单元格,第15个的,1个字符),除以2)],[不等于15条

Excel表中身份证号码提取出生年月、年龄、性别的使用技巧[1]

Excel表中身份证号码提取出生年月、性 别、年龄的使用技巧 excle中当一个序列号变更,下面序列号自动变更的方法。 浏览次数:298次悬赏分:0 |解决时间:2011-3-11 12:48 |提问者:kasure 问题补充: 比如我编制了序列号001,002,003。。。。,然后我要是中间插入一行,比如在002和003之间插入一行,我下面的编号都要变动,如何实现这样的功能? 最佳答案 那我想知道如果你需要删除一行的话,下面的编号是否需要变动?如果都需要变动的话,你可以试试这样: 1、把序号列的单元格格式改成"000"(在设置单元格格式--自定义--类型那里可以改) 2、把序列号的单元格填上公式=row() 。如果表格上面有表头的话,你数数表头有多少行,在公式后面减去行数,例如有5行表头,公式就是=row()-5 当你插入行的时候把公式填上就可以了 方法一: 1.Excel表中用身份证号码中取其中的号码用:MID(文本,开始字符,所取字符数); 2.15位身份证号从第7位到第12位是出生年月日,年份用的是2位数。

18位身份证号从第7位到第14位是出生的年月日,年份用的是4位数。 从身份证号码中提取出表示出生年、月、日的数字,用文本函数MID()可以达到目的。MID()——从指定位置开始提取指定个数的字符(从左向右)。 对一个身份证号码是15位或是18位进行判断,用逻辑判断函数IF()和字符个数计算函数LEN()辅助使用可以完成。综合上述分析,可以通过下述操作,完成形如1978-12-24样式的出生年月日自动提取: 假如身份证号数据在A1单元格,在B1单元格中编辑公式 =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&M ID(A1,11,2),MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1, 13,2)) 回车确认即可。 如果只要“年-月”格式,公式可以修改为 =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2),MID(A 1,7,4)&"-"&MID(A1,11,2))

excel 怎样从身份证号码提取年龄和性别

excel 怎样从身份证号码提取年龄和性别- [电脑应用技巧] 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 https://www.doczj.com/doc/f116132507.html,/logs/50218662.html 因为自己需要,在网上找来了这个教程,函数真是好用的东西。这个教程很详细,不过我偷懒,因为自己觉得只需要看公式,所以用红字标记方便自己。。。。 在EXCEL中如何利用身份证号码计算出生年月、年龄及性别 在学校的人事管理中经常会遇到需要统计教职工的年龄的问题,但案头的原始资料只有身份证号码,其实这足够了。在EXCEL中,引用其内置函数利用身份证号码达到此目的比较简单。1、身份证号码简介(18位): 1~6位为地区代码;7~10位为出生年份;11~12位为出生月份;13~14位为出生日期;15~17位为顺序号,并能够判断性别,奇数为男,偶数为男;第18位为校验码。 2、确定“出生日期”: 18位身份证号码中的生日是从第7位开始至第14位结束。提取出来后为了计算“年龄” 应该将“年”“月”“日”数据中添加一个“/”或“-”分隔符。 ①正确输入了身份证号码。(假设在D2单元格中) ②将光标定位在“出生日期”单元格(E2)中,然后在单元格中输入函数公式 “=MID(D2,7,4)&"-"&MID(D2,11,2)&"-"&MID(D2,13,2)”即可计算出“出生日期”。 关于这个函数公式的具体说明:MID函数用于从数据中间提取字符,它的格式是:MID (text,starl_num,num_chars)。 Text是指要提取字符的文本或单元格地址(上列公式中的D2单元格)。 starl_num是指要提取的第一个字符的位置(上列公式中依次为7、11、13)。 num_chars指定要由MID所提取的字符个数(上述公式中,提取年份为4,月份和日期为2)。 多个函数中的“&”起到的作用是将提取出的“年”“月”“日”信息合并到一起,“/”或“-” 分隔符则是在提取出的“年”“月”“日”数据之间添加的一个标记,这样的数据以后就可以作为日期类型进行年龄计算。确定“年龄”:

Excel里通过身份证号码计算性别

在EXCEL中利用身份证号码计算性别 原理: 15位身份证,看最后一位,奇男偶女;18位的,看第17位数,也是奇男偶女。 公式内的“B2”代表的是输入身份证号码的单元格。 方法一: =IF(LEN(B2)=15,IF(MOD(MID(B2,15,1),2)=1,"男","女"),IF(MOD(MID(B2,17,1),2)=1,"男","女")) 公式含义: 如果B2单元格中式15位的身份证号,则显示IF(MOD(MID(B2,15,1),2)=1,"男","女")的计算结果,否则,显示IF(MOD(MID(B2,17,1),2)=1,"男","女")的计算结果。 方法二: 18位身份证号码中,第15~17位为顺序号,奇数为男,偶数为女。 将光标定位在“性别”单元格中,然后在单元格中输入函数公式:=IF(VALUE(MID(B2,15,3))/2=INT(VALUE(MID(B2,15,3))/2),"女","男") 公式含义: ①函数公式中,MID(D2,15,3)的含义是将身份证中的第15~17位提取出来。 ②VALUE(MID(D2,15,3))的含义是将提取出来的文本数字转换成能够计算的数值。 ③VALUE(MID(D2,15,3))/2=INT(VALUE(MID(D2,15,3))/2)的含义是判断奇偶。(“INT”是取整函数,如果是偶数,则前后相等;如果是奇数,则前后不相等。) ④=IF(VALUE(MID(D2,15,3))/2=INT(VALUE(MID(D2,15,3))/2),"女","男")的含义是若是“偶数”就填写“女”,若是“奇数”就填写“男”。

用Excel从身份证号码中提取信息(年龄、性别、出生地)

用Excel从身份证号码中提取信息 (年龄、性别、出生地) 出生年月日信息提取: 方法一:在记录列中输入公式:=--TEXT(MID(B2,7,6+IF(LEN(B2)=15,0,2)),"#-00-00"),往下复制,无论15位还是18位身份证号码全部搞定,方法最简单。 方法二、在记录列中输入公式:=--IF(LEN(B2)=15,TEXT(MID(B2,7,6),"##-00-00"),TEXT(MID(B2,7,8),"####-00-00")),往下复制,无论15位还是18位身份证号码全部搞定,公式增加了几个字符,原理差不多,结果一致。 原理:使用函数text、if、mid、len。 注意:1、B列存放身份证号码。存放在其它列,则在公式中作相应调整。 2、计算出错(#V ALUE!),说明身份证号码有错。 3、日期显示格式,可在单元格格式中设置。 性别信息提取: 在记录列中输入公式:=IF(LEN(B2)=15,IF(MOD(RIGHT(B2),2)=0,"女","男"),IF(MOD(LEFT(RIGHT(B2,2)),2)=0,"女","男"))无论15位还是18位身份证号码全部轻松完成。 原理:使用函数IF、LEN、MOD、LEFT、RIGHT。 注意:1、B列存放身份证号码。存放在其它列,则在公式中作相应调整。 2、计算出错(#V ALUE!),说明身份证号码有错。 出生地信息提取:

在记录列中输入公式:=LEFT(B2,6),往下复制,然后根据代码用VLOOKUP查询发证地或者是出生地信息。 Excel文件模板: 从身份证号码中提取信息使用的模板 : 使用Excel从身份证 号码提取信息.xls 点击该图标,打 开该EXCEL文件,另存为××文件,即可使用。 谢谢你的使用。 水晶六彩

如何用EXCEL提取身份证号的出生日期并计算年龄

如何用EXCEL提取身份证号的出生日期并计算年龄 身份证号码的数字都有其具体的意义,从这些数字中可以获得该号码所对应人员的出生户籍地、出生日期、性别等基本信息。利用EXCEL函数,可以很方便的提取身份证号码中的出生日期信息,并计算出年龄。 工具/原料 ?电脑 ?OFFICE2003版或其他更高版本 方法/步骤 1.身份证号码的结构和意义:(1)前6位是地址码,一般为出生上户口的 时候户籍地的代码;(2)第7至第14位是出生日期码,是按年月日排列的; (3)第15至第17位是顺序码,是由公安机关编订的号码,用来区别同一户

籍地同年同月同日生的人,其中第17位是性别信息,奇数为男性,偶数是女性;(4)第18位即最后一位是校验码,由前面17位数字根据全国同一的算法进行计算得出。 2.打开示例EXCEL文件,该表有4个栏目:身份证号、姓名、出生日期、 年龄。出生日期和年龄需要通过EXCLE进行提取和计算,该2列的单元格格式为“常规”格式。

3.提取出生日期需要使用的函数有两个,一个是DATE函数,一个是MID 函数。DATE函数的结构为DATE(year,month,day),其作用是将提取的数字变为日期格式进行显示。MID函数的结构为MID(text, start_num, num_chars),其作用是从字符串中提取指定位数的字符,其中text是需要提取的字符所在的字符串,start_num是需要提取的字符在该字符串中的起始位置,num_chars是需要提取的字符的位数。

4.在C3单元格输入公式 “=DATE(MID(A3,7,4),MID(A3,11,2),MID(A3,13,2))”并下拉,其中MID(A3,7,4)用于提取年份,MID(A3,11,2)用于提取月份,MID(A3,13,2)用于提取日期。 5.不需要精确到日期的年龄计算可以直接用需计算的年份减身份证号的年 份来得出。如要算所有人在2016年时的年龄,在C3单元格输入公式“=2016- MID(A3,7,4)”即可。

excel中用身份证号码生成性别、出生日期、计算年龄

excel中用身份证号码生成性别、出生日期、计算年龄 从身份证号码中自动生成性别和生日 生成性别:(其中B2是身份证号码所在列) 一性别双击性别所在列的第二行,然后输入下面公式,然后按ENTER键;再利用下拉方式将公式复制到该列的其他行中即可 1=CHOOSE(MOD(IF(LEN(B2)=18,MID(B2,17,1),IF(LEN(B2)=15,RIGHT(B2,1),"")),2)+1,"女","男") 2=IF(MOD(IF(LEN(B2)=15,MID(B2,15,1),MID(B2,17,1)),2)=1,"男","女") 3=IF(LEN(B2)=15,IF(MOD(MID(B2,15,1),2)=1,"男","女"),IF(MOD(MID(B2,17,1),2)=1,"男","女")) 二出生日期提取出生日期:(其中B2是身份证号码所在列) 双击出生日期所在列的第二行,然后输入下面公式,然后按ENTER键;再利用下拉方式将公式复制到该列的其他行中即可 =DA TE(MID(B2,7,4),MID(B2,11,2),MID(B2,13,2)) 三计算年龄:(其中C3是出生日期所在列) 双击年龄所在列的第二行,然后输入下面公式,然后按ENTER键;再利用下拉方式将公式复制到该列的其他行中即可 =YEAR(NOW())-YEAR(C3) Excel自动从身份证中提取生日性别 出处:天空软件作者:佚名日期:2009-09-16 每年新入学的一年级学生,都需要向上级教育部门上报一份包含身份证号、出生年月等内容的电子表格,以备建立全省统一的电子学籍档案。数百个新生,就得输入数百行相应数据,这可不是个轻松活儿。有没有什么办法能减轻一下输入工作量、提高一下效率呢?其实,我们只需在Excel2003中将学生的身份证号完整地输入后,它就可以帮我们自动填好出生日期和性别。 现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的。前6位数字是户籍所在地的代码,7-14位就是出生日期。第17位“2”代表的是性别,偶数为女性,奇数为男性。我们要做的就是把其中的部分数字想法“提取出来”。 STEp1,转换身份证号码格式 我们先将学生的身份证号完整地输入到Excel2003表格中,这时默认为“数字”格式(单元格内显示的是科学记数法的格式),需要更改一下数字格式。选中该列中的所有身份证号后,右击鼠标,选择“设置单元格格式”。在弹出对话框中“数字”标签内的“分类”设为“文本”,然后点击确定。 STEP2,“提取出”出生日期 将光标指针放到“出生日期”列的单元格内,这里以C2单元格为例。然后输入

Excel中根据身份证号码自动提取信息

Excel中根据身份证号码自动提取信息 在excel表格中,根据身份证号码就可以自动提取出生年月、性别、年龄。 第一,身份证号码的组成 当今的身份证号码由18位数字组成:前6位为地址码,第7至14位为出生日期码,第15至17位为顺序码,第18位为校验码。 15~17位为顺序号,其中第17位如果是单数为男性分配码,双数为女性分配码。即通过第17位数字,可以判断性别,奇数为男,偶数为女。 下面以实例的方式讲解如何根据身份证号码自动提取出生年月、性别、年龄。首先,在excel中输入以下表格,实例如下面所示。 A BCD E姓名身份证号码出生日期性别年龄张三5103211972050307861972年05月03日女37第二,根据身份证号码自动提取出生年月 在目标单元格输入公式:=MID(B2,7,4)&"年"&MID(B2,11,2)&"月 "&MID(B2,13,2)&"日",回车确定,单元格内会出现与身份证号码相关的出生日期。其它单元格的填充,不必一一输入公式,只需选中该单元格复制,在其它单元格内粘贴即可。 提示:MID函数是提供的一个“从字符串中提取部分字符”的函数命令。 第三,根据身份证号码自动提取性别的方法 在目标单元格输入公式:=IF(MOD(RIGHT(LEFT(B2,17)),2),"男","女")提示:IF 函数:根据逻辑表达式测试的结果,返回相应的值。IF函数允许嵌套。 RIGHT函数:根据所指定的字符数返回文本串中最后一个或多个字符。 第四,根据身份证号码自动提取年龄的方法 在目标单元格输入公式:

=DATEDIF(TEXT(MID(B2,7,6+2*(LEN(B2)=18)),"#-00-00"),NOW(),"y"),回车确定。

身份证号码函数

用vlookup函数,及其他各项功能,通过身份证号得出了出生日期、性别、户籍所在地等多项信息,并加入了身份证号正确性验证机制和15位、18位号码的转换功能。 详细制作步骤 要想了解身份证的秘密,首先让我们了解一下我国现行的公民身份证标准。 1.我国现行使用公民身份证号码有两种标准。 2.15位身份证号码(六位数字地址码,六位数字出生日期码,三位数字顺序码)。 3.18位身份证号码(六位数字地址码,八位数字出生日期码,三位数字顺序码和 一位数字校验码)。 4. 5.地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码。 6.日期码表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、 日之间不用分隔符。 7.顺序码表示同一范围内对同年、月、日出生的人员编定的顺序号。奇数分给男 性,偶数分给女性。 8.校验码是根据前面十七位数字码计算出来的检验码。 复制代码 了解了以上知识后,让我们来制作Excel表。 1.新建一个Excel文档, 2.将Sheet1重命名为“身份证信息”,在第1行各列中依次输入“身份证号码、 十五位身份证号码、十八位身份证号码、性别、出生日期、年龄、省份、市、 区县”等文字,并将“出生日期”列设置为日期(yyyy.mm.dd)格式,其余列 设置为文本格式。 3.将Sheet2重命名为“区域信息”,从国家统计局下载到最新县及县以上行政 区划代码,经整理后分别导入到“区域信息”的A、B两列中,以便查询。 复制代码 到此,Excel表框架搭建完成,我们来写入函数完成查询。 第一步判断号码是否为正确的身份证号 一个正确的身份证号码,要符合以下几个标准: ①应为15位或18位; ②要包含数字(0-9)或字符(X); ③18位身份证号最后一位是真正的校验码。 如果上面三个条件都满足,则是正确的身份证号。 我们利用Excel单元格的“有效性”限制来完成校验。 具体方法是选择“身份证信息”表,全选“身份证号码”列,选择“数据-有效性”菜单命令,在弹出的窗口“设置”标签中,将有效性条件的“允许”设置为“自定义”、“公式”

身份证号码计算年龄

在电子表格中,如何设置公式通过身份证号码计算出年龄。 比如在a列中输入身份证号码,在b列置换出出生年月,c列计算出周岁5222428198602113112 1986-02-11 24 最佳答案 设A1文本格式的18位身份证号,B1输入如下公式,即可算出当天的年龄. =YEAR(TODAY()-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1900&"岁"&MONTH(TODAY()-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1&"月"&DAY(TODAY()-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))&"天" 如要算指定日期的年龄,则设A1文本格式的18位身份证号,B1为指定日期,在C1输入公式如下: =YEAR(B1-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1900&"岁 "&MONTH(B1-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))-1&"月 "&DAY(B1-DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)))&"天" 或 根据身份证号码(15位和18位通用)自动提取性别和出生年月的自编公式,供需要的网友参考: 说明:公式中的B2是身份证号 1、根据身份证号码求性别: =IF(LEN(B2)=15,IF(MOD(VALUE(RIGHT(B2,3)),2)=0,"女","男 "),IF(LEN(B2)=18,IF(MOD(VALUE(MID(B2,15,3)),2)=0,"女","男"),"身份证错")) 2、根据身份证号码求出生年月: =IF(LEN(B2)=15,CONCATENATE("19",MID(B2,7,2),".",MID(B2,9,2)),IF(LEN( B2)=18,CONCATENATE(MID(B2,7,4),".",MID(B2,11,2)),"身份证错")) 3、根据身份证号码求年龄: =IF(LEN(B2)=15,year(now())-1900-VALUE(MID(B2,7,2)),if(LEN(B2)=18,year( now())-VALUE(MID(B2,7,4)),"身份证错")) 4、假设身份证号在A2,在B2单元格输入公式:其中2011改为当前年: =2011-IF(LEN(A2)=18,MID(A2,7,4),"19"&MID(A2,7,2)) 5、假设身份证号在A2中,则可用下面的公式算出其周岁年龄: =DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,(LEN(A2)=18)*2+6),"#-00-00") ,TODAY(),"y")

一个18位身份证校验计算函数.docx

-个18位身份证校验计算函数 因需要对15位旧身份证号码进行升位和校验、查询处理,又没有搜索到现成的函数,于是自己写了一个简单的过程,希望能够帮得上需要的朋友。 本函数的功能单一,只能校验第18位号码是否正确或者取得第18位号码,其他功能留给人家自C扩展吧! <% ' Version: 1. 0. 1 'Author: sfply(sfply@163. com) 'Last Modified: 2004/7/17 12:03 'Src是身份证号码,可以是15位也可以是18位,15位时只能返回验证码方式使用 'iChk参数取值真假,真代表校验Six是否18位身份证,并且校验第18位是否 正确号码而确定是否有效身份证,返冋只值为true或false ' 假代表返回止确的校验码,返回值为(l~x) dim myldentify myTdentify 二〃36050219781218133?〃 response .write chkldentiyCard(myldentify, false) Function chkldentiyCard(Src,iChk)

dim myWi, myAi, mySrc(17), i, myCount myAi =,z 10X98765432' myWi = split(z/7, 9, 10, 5, & 4, 2, 1, 6, 3, 7, 9, 10, 5, & 4, 2〃,〃,〃) if iChk then if len (Src) = 18 then for i = 0 to 16 mySrc(i)二mid(Src, i + 1, 1) myCouni 二myCount + mySrc(i) * myWi(i) next if mid(myAi, (mycount mod 11)+1,1) = right (Src,1) then chkldcntiyCard = true '返回结果,TRUE为合法身份证验证码 el se chkldentiyCard = false '返回结果,FALSE为非法身份证验证码 end if else chkldentiyCard = false '因为不是18位身份证所以返[H] FALSE end if el se if len(Src)二15 or len(Src)二18 then if len(Src) = 15 then Src = mid(Src, 1, 6) & "19〃 & mid(Src, 7, 9) for i = 0 to 16 mySrc(i)二mid(Src, i + 1, 1) myCount 二myCount + mySrc(i) * myWi (i) n ext chkldentiyCard = mid (myAi, (mycount mod 11)+1, 1)'返回正确的验证码else chkldentiyCard二false '输入不不是15位或18位身份证号 end if end if Encl Function

Excel从身份证号中提取出生年月和年龄

假设数据在A1单元格 B1单元格输入公式 =right(a1,len(a1)-2) (公式中的“2”是指栓出前面的位数)或 =substitute(a2,"SF",) 双击填充柄填充或下拉填充 然后复制B列,选择性粘贴为数值,替换到A列中 如何利用Excel从身份证号中提取出生年月和年龄等信息? 2007年12月16日 07:41 P.M.一、分析身份证号码 其实,身份证号码与一个人的性别、出生年月、籍贯等信息 是紧密相连的,无论是15位还是18位的身份证号码,其中都保 存了相关的个人信息。 15位身份证号码:第7、8位为出生年份(两位数),第9、 10位为出生月份,第11、12位代表出生日期,第15位代表性别, 奇数为男,偶数为女。 18位身份证号码:第7、8、9、10位为出生年份(四位数), 第11、第12位为出生月份,第13、14位代表出生日期,第17 位代表性别,奇数为男,偶数为女。 例如,某员工的身份证号码(15位)是320521*********,那 么表示1972年8月7日出生,性别为女。如果能想办法从这些身

份证号码中将上述个人信息提取出来,不仅快速简便,而且不容易出错,核对时也只需要对身份证号码进行检查,肯定可以大大提高工作效率。 二、提取个人信息 这里,我们需要使用IF、LEN、MOD、MID、DATE等函数从身份证号码中提取个人信息。如图1所示,其中员工的身份证号码信息已输入完毕(C列),出生年月信息填写在D列,性别信息填写在B列。 图1 输入身份证号码 1.提取出生年月信息 由于上交报表时只需要填写出生年月,不需要填写出生日期,因此这里我们只需要关心身份证号码的相应部位即可,即显示为“7208”这样的信息。在D2单元格中输入公式 “=IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4))”,其中: LEN(C2)=15:检查C2单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。 MID(C2,7,4):从C2单元格中字符串的第7位开始提取四位数字,本例中表示提取15位身份证号码的第7、8、9、10位数字。 MID(C2,9,4):从C2单元格中字符串的第9位开始提取四位数字,本例中表示提取18位身份证号码的第9、10、11、12位数字。 IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4)):IF是一个逻辑判断函数,表示如果C2单元格是15位,则提取第7位开始的

如何使用Excel从身份证号码中提取出生日期

如何使用Excel从身份证号码中提取出生日期2009-02-27 22:52例如:从身份证420821************中提取出生日期来,如何快速得出? 呵呵,只需使用语句: =DATE(mid(A1,7,4),mid(A1,11,2),mid(A1,13,2)) 【A1是身份证号码所在单元格】 date()函数,地球人都知道,日期函数;如输入今天的日期=today() 那么,mid函数是什么东东呢? MID(text,start_num,num_chars) Text 为包含要提取字符的文本字符串;Start_num 为文本 中要提取的第一个字符的位置。文本中第一个字符的start_num 为1 ,以此类推;Num_chars指定希望MID 从文本中返回字符的个数。对身份证号码分析下就知道:420821************,出生日期是1992年2月6日;也就是 从字符串(420821************)的第7位开始的4位数字表示年,从字符串的第11位开始的2位数字表示月,字符串的第13位开始的2位数字表示日。呵呵,强悍吧! Excel中利用身份证号码(15或18位)提取出生日期和性别

需要的函数: LEN(C6)=15:检查C6单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位; INT:返回数值向下取整为最接近的整数,本例中用来判断身份证里数值的奇偶数。 RIGHT:返回文本字符串最后一个字符开始指定个数的字符;MID:返回文本字符串指定起始位置起指定长度的字符,MID(C6,7,2)表示:在C3中从左边第七位起提取2位数; "19"&MID(C6,7,2)表示:在C3中从左边第七位起提取2位数的前面添加19; …… &""&表示:其左右两边所提取出来的数字不用任何符号连接;&"-"&表示:其左右两边所提取出来的数字间用“-”符号连接。若需要的日期格式是yyyy年mm月dd日,则可以把公式中的“-”分别用“年月日”进行替换就行了。 一、提取出生日期 如果我们要从一个人的身份证号码中批量提取其出生年月日,并表示成“yyyy-mm-dd”形式,可以这样做,假设身份证号码在C列,在D

EXCEL利用身份证号码计算年龄以及年龄分段的技巧

在EXCEL中如何利用身份证号码计算出生年月年龄及性别 1、身份证号码简介(18位): 1~6位为地区代码;7~10位为出生年份;11~12位为出生月份;13~14位为出生日期;15~17位为顺序号,并能够判断性别,奇数为男,偶数为男;第18位为校验码。 2、确定“出生日期”: 18位身份证号码中的生日是从第7位开始至第14位结束。提取出来后为了计算“年龄”应该将“年”“月”“日”数据中添加一个“/”或“-”分隔符。 ①正确输入了身份证号码。(假设在D2单元格中) ②将光标定位在“出生日期”单元格(E2)中,然后在单元格中输入函数公式 “=MID(D2,7,4)&"-"&MID(D2,11,2)&"-"&MID(D2,13,2)”即可计算出“出生日期”。 关于这个函数公式的具体说明:MID函数用于从数据中间提取字符,它的格式是:MID (text,starl_num,num_chars)。 Text是指要提取字符的文本或单元格地址(上列公式中的D2单元格)。 starl_num是指要提取的第一个字符的位置(上列公式中依次为7、11、13)。 num_chars指定要由MID所提取的字符个数(上述公式中,提取年份为4,月份和日期为2)。 多个函数中的“&”起到的作用是将提取出的“年”“月”“日”信息合并到一起,“/”或“-” 分隔符则是在提取出的“年”“月”“日”数据之间添加的一个标记,这样的数据以后就可以作为日期类型进行年龄计算。操作效果如下图:

3、确定“年龄”: “出生日期”确定后,年龄则可以利用一个简单的函数公式计算出来了:将光标定位在“年龄”单元格中,然后在单元格中输入函数公式“=INT((TODAY()-E2)/365)”即可计算出“年龄”。 关于这个函数公式的具体说明: ①TODAY函数用于计算当前系统日期。只要计算机的系统日期准确,就能立即计算出当前的日期,它无需参数。操作格式是TODAY()。 ②用TODAY()-E2,也就是用当前日期减去出生日期,就可以计算出这个人的出生天数。 ③再除以“365”减得到这个人的年龄。 ④计算以后可能有多位小数,可以用【减少小数位数】按钮,将年龄的数值变成“整数”,也可在公式= (TODAY()-E2)/365中再嵌套一个“INT”函数取整数,即 “ =INT((TODAY()-E2)/365)”,这样就会自动将后面的小数去掉,只保留整数部分。操作效果如下图: 还有一种函数(datedif)可以解决这个问题:这个函数用于计算两个日期之间的天数、月数或年数。 语法:DATEDIF(start_date,end_date,unit) start_date为一个日期,它代表时间段内的第一个日期或起始日期。 end_date为一个日期,它代表时间段内的最后一个日期或结束日期。

在excel中巧妙运用身份证号码输入身份证号如何做到自动显示姓别_年龄及出生年月日

1、在excel中输入身份证号如何做到自动显示姓别,年龄及出生年月日 15位和18位的身份证号都合适的了。设内容如下: ........A列......B列......C列......D列.... 1 身份证号性别出生年月年龄 2(输入身份证号) 算年龄的: =IF(OR(LEN(A2)=15,LEN(A2)=18),RIGHT(IF(IF(LEN(A2)=15,MID(A2,9,2),MID(A2,1 1,2))*100+IF(LEN(A2)=15,MID(A2,11,2),MID(A2,13,2))>MONTH(TODAY())*100+DAY (TODAY()),YEAR(TODAY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))-1,YEAR(TOD AY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))),2),"证号错误") 算性别的: =IF(LEN(A2)=15,(IF(OR(ABS(RIGHT(A2))=1,ABS(RIGHT(A2))=3,ABS(RIGHT(A2))=5, ABS(RIGHT(A2))=7,ABS(RIGHT(A2))=9),"男","女 ")),(IF(OR(ABS(MID(A2,17,1))=1,ABS(MID(A2,17,1))=3,ABS(MID(A2,17,1))=5,AB S(MID(A2,17,1))=7,ABS(MID(A2,17,1))=9),"男","女"))) 算出生年月的: =DATE(IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2)),IF(LEN(A2)=15,MID(A2,9,2),MI D(A2,11,2)),IF(LEN(A2)=15,MID(A2,11,2),MID(A2,13,2))) 【身份证信息提取】 从身份证号码中提取出生年月日 =TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")+0 =TEXT(MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")*1 =IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")+0,) 显示格式均为yyyy-m-d。(最简单的公式,把单元格设置为日期格式) =IF(LEN(A2)=15,"19"&MID(A2,7,2)&"-"&MID(A2,9,2)&"-"&MID(A2,11,2),MID(A2,7, 4)&"-"&MID(A2,11,2)&"-"&MID(A2,13,2)) 显示格式为yyyy-mm-dd。(如果要求为“1995/03/29”格式的话,将”-” 换成”/”即可)=IF(D4="","",IF(LEN(D4)=15,TEXT(("19"&MID(D4,7,6)),"0000年00月00日"),IF(LEN(D4)=18,TEXT(MID(D4,7,8),"0000年00月00日")))) 显示格式为yyyy年mm月dd日。(如果将公式中“0000年00月00日”改成“0000-00-00”,则显示格式为yyyy-mm-dd) =IF(LEN(A1:A2)=18,MID(A1:A2,7,8),"19"&MID(A1:A2,7,6)) 显示格式为yyyymmdd。 =TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00")+0

Excel自动从身份证中提取生日

Excel自动从身份证中提取生日、性别、年龄 18位的新一代身份证里面的数字都是有规律的:前6位数字是户籍所在地的代码,7-14位就是出生日期。第17位“2”代表的是性别,偶数为女性,奇数为男性。我们要做的就是把其中的部分数字想法“提取出来”。 STEP1,转换身份证号码格式 我们先将学生的身份证号完整地输入到Excel2003表格中,这时默认为“数字”格式(单元格内显示的是科学记数法的格式),需要更改一下数字格式。选中该列中的所有身份证号后,右击鼠标,选择“设置单元格格式”。在弹出对话框中“数字”标签内的“分类”设为“文本”,然后点击确定。 STEP2,“提取出”出生日期 将光标指针放到“出生日期”列的单元格内,这里以C2单元格为例。然后输入“=MID(B2,7,4)&"年"&MID(B2,11,2)&"月"&MID(B2,13,2)&"日"”(注意:外侧的双引号不用输入,函数式中的引号和逗号等符号应在英文状态下输入)。回车后,你会发现在C2单元格内已经出现了该学生的出生日期。然后,选中该单元格后拖动填充柄,其它单元格内就会出现相应的出生日期。如图1。 图1 通过上述方法,系统自动获取了出生年月日信息 小提示:MID函数是EXCEL提供的一个“从字符串中提取部分字符”的函数命令,具体使用格式在EXCEL中输入MID后会出现提示。

STEP3,判断性别“男女” 选中“性别”列的单元格,如D2。输入“=IF(MID(B2,17,1)/2=TRUNC (MID(B2,17,1)/2),"女","男")”(注意如上)后回车,该生“是男还是女”已经乖乖地判断出来了。拖动填充柄让其他学生的性别也自动输入。如图2。 图2 性别被自动填入指定位置 STEP4,计算年龄:(其中C2是出生日期所在列) No.1双击年龄所在列的第二行,然后输入下面公式,然后按ENTER键;再利用下拉方式将公式复制到该列的其他行中即可=YEAR(NOW())-YEAR(C2) 如图3所示:

相关主题
文本预览
相关文档 最新文档