提取身份证的性别、出生年月日的VBA

合集下载

Excel如何从身份证号码中计算出生日期、性别及年龄

Excel如何从身份证号码中计算出生日期、性别及年龄

Excel如何从身份证号码中计算出生日期、性别及年龄
如下图,要根据A列的身份证号码提取出生日期,判断性别和计算年龄
提取出生日期
现在身份证号码都是18位,代表出生日期的是第7位-第14位,总共8位数字,
所以在B2单元格输入公式:=--TEXT(MID(A2,7,8),"0-00-00")
公式说明:使用MID函数从第7位开始提取,提取8位数,但是提取出来的是一串数字,并不属于日期格式,所以使用TEXT函数将数字转换为日期格式。

判断性别
身份证号码的第17位数字是代表性别的,奇数为男生,偶数为女生,所以在C2单元格输入公式:=IF(MOD(MID(A2,17,1),2),"男","女")
公式说明:用MID函数提取第17位代表性别的数字,然后用MOD函数将第17位数跟2相除取余数,奇数跟2相除的余数为1,偶数跟2相除的余数为0,再用if函数判断MOD函数的余数是1则返回“男” 是0则返回“女”
计算年龄
在D2单元格输入公式:=DATEDIF(B2,TODAY(),"Y")
公式说明:用DATEDIF函数计算两个日期之间相差的日期间隔,用出生日期跟今天的日期(用TODAY函数表示当前的日期),计算类型为“Y”(年)
我是小螃蟹,如果您喜欢这篇教程,请帮忙点赞、转发和评论哦,感谢您的支持!。

身份证号提取生日、年龄、性别、籍贯

身份证号提取生日、年龄、性别、籍贯

身份证号提取生日、年龄、性别、籍贯咱们每个人都有一个唯一的身份证号,其实身份证号中包含了很多的个人信息,你知道怎么从身份证号中提取个人的生日、年龄、性别、籍贯等信息吗?技巧君今天和大家分享一下如何利用Excel从身份证号中提取个人信息!文末有示例文件获取方法哦身份证号的构成身份证号有18位,排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。

顺序码的奇数分给男性,偶数分给女性。

身份证号构成从这个构成中,我们可以发现,只需要提取对应的编码就可以提取出身份证号中的个人信息!提取性别=IF(MOD(MID(B2,17,1),2),'男','女')身份证号提取性别说明:MID(B2,17,1),提取第17位数字MOD(MID(B2,17,1),2),对2取余,奇数余数得1,偶数余数为0提取出生年月=--TEXT(MID(B2,7,8),'0-00-00')提取出身年月说明:MID(B2,7,8),提取第7位开始后面的8位数字,即出生年月日编码TEXT(MID(B2,7,8),'0-00-00'),转换为年-月-日的格式--TEXT(MID(B2,7,8),'0-00-00'),减负运算换算为真正的日期提取实岁=DATEDIF(TEXT(MID(B2,7,8),'0-00-00'),TODAY(),'Y')提取实岁说明:DATEDIF(TEXT(MID(B2,7,8),'0-00-00'),TODAY(),'Y'),计算当前日期和出生日期的年差值,即实际岁数提取虚岁=(YEAR(NOW())-MID(B2,7,4))提取虚岁说明:MID(B2,7,4):提取第7位数开始的4位数字,即出生年份YEAR(NOW()):计算当前日期的年份(YEAR(NOW())-MID(B2,7,4)):虚岁=当前年份-出生年份提取籍贯=VLOOKUP(--MID(B2,1,6),籍贯编码!B:C,2,0)提取籍贯说明:--MID(B2,1,6),提取前六位地址编码VLOOKUP(--MID(B2,1,6),籍贯编码!B:C,2,0),在地址编码表里找到籍贯。

请教狐狸爸爸:身份证号码有效性验证,提取籍贯、性别、出生日期、年龄信息(VBA代码)

请教狐狸爸爸:身份证号码有效性验证,提取籍贯、性别、出生日期、年龄信息(VBA代码)

请教狐狸爸爸:身份证号码有效性验证,提取籍贯、性别、出生日期、年龄信息(VBA代码)Option Explicit'====================================== ============================='函数名称: IsIDNumber'功能描述:根据GB11643-1999编码规则验证18位身份证号码是否有效'输入参数:参数1:IDNumber 必需的,18位身份证号码'返回参数:有效返回True,无效返回False'兼容性:'使用示例:IsIDNumber(*******************")'返回True '相关调用:'作者:红尘如烟'创建日期: 20010-4-25'====================================== =============================Function IsIDNumber(ByVal IDNumber As String) As Boolean Const W As String = "79058421637905842" '加权因子Const C As String = "10X98765432" '校验码Dim S As Integer, i As Integer, T As IntegerIDNumber = UCase(Trim(IDNumber))If Len(IDNumber) <> 18 Then Exit FunctionIf Not IsNumeric(Mid(IDNumber, 1, 17)) Then Exit Function If Not IDNumber Like "*[0-9X]" Then Exit FunctionFor i = 1 To 17T = Mid(W, i, 1)If T = 0 Then T = 10S = S + Mid(IDNumber, i, 1) * TNextT = S Mod 11If Right(IDNumber, 1) = Mid(C, T + 1, 1) Then IsIDNumber = TrueEnd FunctionPrivate Sub Form_Load()End SubPrivate Sub txtAge_BeforeUpdate(Cancel As Integer)End SubPrivate Sub txtIDNumber_AfterUpdate()If Nz(Me.txtIDNumber) = "" Then Exit Sub'验证输入的是否为一个有效的身份证号码If Not IsIDNumber(Nz(Me.txtIDNumber)) ThenMsgBox "无效的身份证号码!", vbInformationMe.txtIDNumber = NullMe.txtBirthday = NullMe.txtSex = NullMe.txtNativePlace = NullElse'从表中取得籍贯Me.txtNativePlace = DLookup("[FAddress]", "tblNativePlaceList", "[FNumber]=" & Left(Me.txtIDNumber, 6)) '提取出生日期(第7-14位)Me.txtBirthday = DateSerial(Mid(Me.txtIDNumber, 7, 4), Mid(Me.txtIDNumber, 11, 2), Mid(Me.txtIDNumber, 13, 2)) '提取性别(第17位,奇数为男,偶数为女)Me.txtSex = IIf(Mid(Me.txtIDNumber, 17, 1) Mod 2 = 0, "女", "男")'根据出生日期计算年龄,精确到年' Me.txtAge = DateDiff("yyyy", Me.txtBirthday, Date)'根据出生日期计算年龄,精确到月Me.txtAge = DateDiff("m", Me.txtBirthday, Date) \ 12'根据出生日期计算年龄,精确到天' Me.txtAge = DateDiff("d", Me.txtBirthday, Date) \ 365.25End IfEnd Sub。

怎么样快速批量提取出WPS表格身份证号码的出生日期

怎么样快速批量提取出WPS表格身份证号码的出生日期

怎么样快速批量提取出 WPS 表格身份证号码的出生日期、性别
众所周知,从一个人的身份证号码就能看出这个人所属省份、县市、出生年月日以及性别。

人力资源部门的同事在记录新员工信息的时候,不掌握一点技巧,一个一个的人工识别,那 是不可取的办法。

下面,介绍一种 WPS 表格中快速批量提取出身份证号码中的出身日期。


操作步骤
启动 WPS2012表格,输入一些数据,如下图所示。


鼠标单击 B2单元格,然后点击上面的 fx 插入函数按钮。




弹出一个设置框,切换到常用公式标签,选择提取身份证生日,然后单击身份证号码 后面的按钮,鼠标单击 A2单元格,按下确定按钮。


在 B2单元格正确的显示出了生日,这样比我们手动输入来的快多了。




最后利用单元格填充的方法将整个表格填充完整。




6
6
显示性别是同样的方法













利用函数提取身份证中的性别出生日期

利用函数提取身份证中的性别出生日期

1、性别、出生月日、年龄的自动填充功能设置我们先对“性别”“出生年月”“年龄”进行函数设置。

当我们输入某人身份证号码时,系统便会自动生成“性别”,“出生年月”及“年龄”,这样就减少了我们录入的工作量。

请分别选择性别、出生月日、年龄信息项单元格输入下列公式:性别A、如果身份证号是18位的,=IF(MOD(MID(E3,17,1),2)=1,"男","女")B、如果身份证号是15位或18位那么就应输入分式(1)性别:=IF(MOD(IF(LEN(E3)=15,MID(E3,15,1),MID(E3,17,1)),2)=1,"男","女")含义:“LEN(E3)=15”表示看E3中是否有15个字符;“MID(E3,15,1)”表示在E3中从第15位开始提取1位字符;“MOD(MID(),2)=1”表示提取的字符除以2余数为1;“IF(LEN(E3)=15,MID(E3,15,1),MID(E3,17,1)”表示看E3中是否够15个字符,如果够就从第15个字符开始取1个字符,如果不够15个字符就从第17个字符开始取1个字符。

我们的身份证号码一般是15位或18位。

“IF(MOD(IF(LEN(E3)=15,MID(E3,15,1),MID(E3,17,1)),2)=1,"男","女"”表示所取字符除以2如果余数为1显示男,否则显示女。

(2)出生年月: =DATE(MID(E3,7,4),MID(E3,11,2),MID(E3,13,2))含义:DATE(YEAR,MONTH,DAY);“MID(E3,7,4)”表示在E3中从第7个字符开始连续取4个字符表示年,用类似的表示方法一个人的出生年月日便可以通过函数设置表示出来,如果为了看起来方便,我们可以将单元格格式设置成年、月、日的日期格式,这样显示的结果会非常容易理解。

WPS表格从身份证号提取生日及性别信息

WPS表格从身份证号提取生日及性别信息

WPS表格从身份证号提取生日及性别信息目前,我国的身份证号分为两种,一种为15位,一种为18位。

在15位的老版身份证中,第7到12位为出生日期数,最后一位为性别代码,偶数为女,奇数为男。

18位的新身份证中第7到14位为出生日期数,倒数第2位为性别代码,同样偶数为女,奇数为男。

基于这个特点,我们可以用函数加以判断。

如图1是我们已输入完身份证号的XX表,在输入身份证号时需注意,要把单元格格式设为文本型,最好不要在所输身份证号前加一个单引号“'”或其它的符号。

一、提取出生日期在E2中输入公式:方法一,公式“=DATE(MID(D2,7,4),MID(D2,11,2),MID(D2,13,2))”方法二,公式“=IF(LEN(D2)=15,TEXT(MID(D2,7,6),"1900年00月00日"),TEXT(MID(D2,7,8),"00年00月00日"))”,拖动填充柄向下复制公式,这样就完成了出生日期的提取(如图2):二、提取性别信息在C2中输入公式:“=IF(MOD(IF(LEN(D2)=15,MID(D2,15,1),MID(D2,17,1)),2)=1,"男","女")”,拖动填充柄向下复制公式,这样就完成了性别信息的提取(如图3):三、年龄计算在F2单元格输入公式:方法一,从身份证直接计算公式“=DATEDIF(DATE(MID(D2,7,4),MID(D2,11,2),MID(D2,13,2)),TO DAY(),"y")”并回车。

15位身份证“=DATEDIF(DATE(MID(F880,7,4),MID(F880,11,2),MID(F880,13, 2)),TODAY(),"y")”(如图4):方法二,从出生日期计算公式“=DATEDIF(E2,TODAY(),"Y")”,并回车。

EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)

EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)

EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)这是根据身份证号码(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(B 2)=18,year(now())-VALUE(MID(B2,7,4)),"身份证错"))其他通用公式:(新旧身份证号通用)(1)、根据“身份证号”获得“年龄”A1为身份证号,B1中输入公式=DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"),TODAY(),"y")(2)、根据出生“年-月-日”获得“年龄”B1为出生日期,C1中输入公式=INT((TODAY()-B1)/365)或者=DATEDIF(B1,TODAY(),"Y")判断身份证格式是否正确:B1为身份证号,C1中输入公式=IF(OR(LEN(B1)=18,LEN(B1)=15),IF(LEN(B1)=18,IF(OR(MONTH (DATE(1*(MID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,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))+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),"年份错误","")以下是一位热心网友提供的通用公式:(很不错哦^_^)假设C2为身份证号,输入公式=IF(LEN(C2)=15,19&MID(C2,7,6),MID(C2,7,8))这是获得出生日期=IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,"男","女")这是区分性别Excel表中身份证号码提取出生年月,性别,年龄的使用技巧1.Excel表中用身份证号码中取其中的号码用:MID(文本,开始字符,所取字符数);2.15位身份证号从第7位到第12位是出生年月日,年份用的是2位数。

用VBA构建身份证验证函数

用VBA构建身份证验证函数

用VBA构建身份证验证函数同学们在用VBA构建用户管理系统时,需要收集用户信息,在采集用户信息时,经常会遇到身份证信息输入混乱的情况,有的用户胡乱输入、有的输入明显错误,如何对身份证信息进行校验,规范输入信息呢?本节深入探讨用VBA代码进行身份证校验。

身份证号码的编码规则身份证号码共18位,由17位本体码和1位校验码组成。

1.前6位是地址码,表示登记户口时所在地的行政区划代码,依照《中华人民共和国行政区划代码》国家标准(GB/T2260)的规定执行;2.7到14位是出生年月日,采用YYYYMMDD格式;3.15到17位是顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编订的顺序号,顺序码的奇数分配给男性,偶数分配给女性,即第17位奇数表示男性,偶数表示女性;4.第18位是校验码,采用ISO 7064:1983, MOD 11-2校验字符系统。

一代身份证与二代身份证的区别在于:1.一代身份证是15位,二代身份证是18位;2.一代身份证出生年月日采用YYMMDD格式,二代身份证出生年月日采用YYYYMMDD格式;3.一代身份证无校验码,二代身份证有校验码。

1.区划代码校验首先,把从网上下载的行政区划代码放入名为“区划代码”的工作表中,此步骤主要是校验用户输入的前6位是否在区划代码中找到。

代码如下:arr = Worksheets("区划代码").Range("a1", Worksheets("区划代码").Range("a" & Rows.Count).End(xlUp))AreaCode = Mid(MyId, 1, 6) '提取身份证前6位IsCorrect = FalseFor i = 1 To UBound(arr)If CStr(arr(i, 1)) = AreaCode ThenIsCorrect = TrueExit ForEnd IfNextIf IsCorrect = False ThenIdCardCheck = "区划代码错误"Exit FunctionEnd If2.身份证的长度验证身份证字符长度应为18位或15位,其他长度的不符合要求If Not (Len(MyId) = 18 Or Len(MyId) = 15) ThenIdCardCheck = "身份信息位数不符合要求"Exit FunctionEnd If3.验证日期字符串是否合法(1)验证身份证信息中除最后一位是否含有字符,如果含有字符,说明不合法;(2)验证日期格式是否合法。

身份证号自动生成年龄、出生年月、性别公式

身份证号自动生成年龄、出生年月、性别公式

身份证号自动生成年龄、出生年月、性别公式=MID(E4,8,4)&"/"&MID(E4,12,2)&"/"&MID(E4,14,2)(2011-07-28 17:54:56)转载▼身份证号自动生成年龄、出生年月、性别公式:=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"-"&MID(C2,9,2)&"-"&MID(C2,11,2),MID (C2,7,4)&"-"&MID(C2,11,2)&"-"&MID(C2,13,2))=DATE(MID(I4,IF(LEN(I4)=18,7,7),IF(LEN(I4)=18,4,2)),MID(I4,IF(LEN(I4 )=18,11,9),IF(LEN(I4)=18,2,2)),MID(I4,IF(LEN(I4)=18,13,11),IF(LEN(I4 )=18,2,2)))1、生成出生年月日公式一(18位号和15位号都可自动生成 19**-*-*):=DATE(MID(I4,IF(LEN(I4)=18,7,7),IF(LEN(I4)=18,4,2)),MID(I4,IF(LEN(I4)=18, 11,9),IF(LEN(I4)=18,2,2)),MID(I4,IF(LEN(I4)=18,13,11),IF(LEN(I4)=18,2,2)))生成出生年月日公式二(18位或15位号生成19**-**-**):=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"-"&MID(C2,9,2)&"-"&MID(C2,11,2),MID (C2,7,4)&"-"&MID(C2,11,2)&"-"&MID(C2,13,2))说明:自动生成出生年月就把以上公式复制粘贴到需自动生成“出生年月日”的那一栏第一格,然后把公式一中的所有“I4”或公式二中的所有“C2”改成身份证号码单元格的栏代码如A、B、C、D……和行数如1、2、3、4……。

从身份证号码中自动生成性别和生日

从身份证号码中自动生成性别和生日

从身份证号码中自动生成性别和生日生成性别:(其中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键;再利用下拉方式将公式复制到该列的其他行中即可=DATE(MID(B2,7,4),MID(B2,11,2),MID(B2,13,2))三计算年龄:(其中C3是出生日期所在列)双击年龄所在列的第二行,然后输入下面公式,然后按ENTER键;再利用下拉方式将公式复制到该列的其他行中即可=YEAR(NOW())-YEAR(C3)Excel自动从身份证中提取生日性别出处:天空软件作者:佚名日期:2009-09-16每年新入学的一年级学生,都需要向上级教育部门上报一份包含身份证号、出生年月等内容的电子表格,以备建立全省统一的电子学籍档案。

数百个新生,就得输入数百行相应数据,这可不是个轻松活儿。

有没有什么办法能减轻一下输入工作量、提高一下效率呢?其实,我们只需在Excel2003中将学生的身份证号完整地输入后,它就可以帮我们自动填好出生日期和性别。

用VBA构建身份证验证函数

用VBA构建身份证验证函数

用VBA构建身份证验证函数同学们在用VBA构建用户管理系统时,需要收集用户信息,在采集用户信息时,经常会遇到身份证信息输入混乱的情况,有的用户胡乱输入、有的输入明显错误,如何对身份证信息进行校验,规范输入信息呢?本节深入探讨用VBA代码进行身份证校验。

身份证号码的编码规则身份证号码共18位,由17位本体码和1位校验码组成。

1.前6位是地址码,表示登记户口时所在地的行政区划代码,依照《中华人民共和国行政区划代码》国家标准(GB/T2260)的规定执行;2.7到14位是出生年月日,采用YYYYMMDD格式;3.15到17位是顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编订的顺序号,顺序码的奇数分配给男性,偶数分配给女性,即第17位奇数表示男性,偶数表示女性;4.第18位是校验码,采用ISO 7064:1983, MOD 11-2校验字符系统。

一代身份证与二代身份证的区别在于:1.一代身份证是15位,二代身份证是18位;2.一代身份证出生年月日采用YYMMDD格式,二代身份证出生年月日采用YYYYMMDD格式;3.一代身份证无校验码,二代身份证有校验码。

1.区划代码校验首先,把从网上下载的行政区划代码放入名为“区划代码”的工作表中,此步骤主要是校验用户输入的前6位是否在区划代码中找到。

代码如下:arr = Worksheets("区划代码").Range("a1", Worksheets("区划代码").Range("a" & Rows.Count).End(xlUp))AreaCode = Mid(MyId, 1, 6) '提取身份证前6位IsCorrect = FalseFor i = 1 To UBound(arr)If CStr(arr(i, 1)) = AreaCode ThenIsCorrect = TrueExit ForEnd IfNextIf IsCorrect = False ThenIdCardCheck = "区划代码错误"Exit FunctionEnd If2.身份证的长度验证身份证字符长度应为18位或15位,其他长度的不符合要求If Not (Len(MyId) = 18 Or Len(MyId) = 15) ThenIdCardCheck = "身份信息位数不符合要求"Exit FunctionEnd If3.验证日期字符串是否合法(1)验证身份证信息中除最后一位是否含有字符,如果含有字符,说明不合法;(2)验证日期格式是否合法。

EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)

EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)

EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)EXCEL根据身份证号码自动提取性别、出生年月日和年龄(通用公式)这是根据身份证号码(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)),"身份证错"))其他通用公式:(新旧身份证号通用)(1)、根据“身份证号”获得“年龄”A1为身份证号,B1中输入公式=DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=1 8)*2),"#-00-00"), TODAY(),"y")(2)、根据出生“年-月-日”获得“年龄”B1为出生日期,C1中输入公式=INT((TODAY()-B1)/365)或者=DATEDIF(B1,TODAY(),"Y")判断身份证格式是否正确:B1为身份证号,C1中输入公式=IF(OR(LEN(B1)=18,LEN(B1)=15),IF(LEN(B1)=18,IF(OR(MON TH(DATE(1*(MID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,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))+19 00,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),"年份错误","")。

EXCEL中通过身份证号读取出生年月日和性别

EXCEL中通过身份证号读取出生年月日和性别

EXCEL中通过身份证号读取出生年月日和性别案例1:从身份证号中提取出生年、月、日=DATE(MID(K48,7,4),MID(K48,11,2),MID(K48,13,2))公式解读:从K48单元格中,分别读取从第7个字符开始的4个字符(年)、从第11个字符开始的2个字符(月)和从第13个字符开始的2个字符(日),返回并以日期格式显示。

1)DATE日期函数的基本构型是DATE(year,month,day),其作用是将提取的数字变为日期格式进行显示。

2)MID提取函数的基本构型是MID(text, start_num, num_chars),其作用是从text 所示的字符串中,从左边开始数,第start_num个位置开始,截取num_chars个的字符。

例如案例中MID(K48,7,4)是在K48单元格中,从左边第7个字符开始提取4个字符,提取的结果为:1993。

案例2:从身份证号中提取性别=IF(MOD(MID(K49,17,1),2)=1,"男","女")公式解读:读取K49单元格中,从第17个字符开始的1个字符,并用这个数除以2求余数,如果余数为1则是基数,性别为男,否则性别为女。

1)IF条件函数的基本构型是IF(logical_tes,[value_if_true],[value_if_false]),其作用是条件判断logical_tes,如果是真返回[value_if_true]值,如果是假[value_if_false]值。

例如if(B2>=60, "合格","不合格"),如果B2单元格数字大于等于60,返回"合格"否则反馈"不合格"。

2)MOD求余函数的基本构型是MOD(nExp1,nExp2),其作用是两个数值表达式作除法运算后的余数.例如MOD(4,2),返回值为0。

用Excel从身份证号码中提取出生日期、性别、年龄

用Excel从身份证号码中提取出生日期、性别、年龄

用Excel从身份证号码中获取出生日期、年龄、性别如下图所示,
A列给出身份证号,要在C、D、E列对应的位置算出出生日期、年龄、性别。

先从A2单元格的身份证号入手,选中C列单元格,然后同时按住ctrl+1,将弹出“设置单元格格式”对话框,选中日期,再选一种需要的格式,然后确定。

在C2单元格输入以下公式:
=IF(A2<>"",TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00")+0,) 将出现此身份证号对应的日期。

单击C2单元格,将鼠标悬停在单元格的右下角一秒,鼠标指针将变形,向下拖动鼠标完成公式的自动填充。

在D2单元格输入
=IF(A2<>"",DATEDIF(TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"#-00-00") ,TODAY(),"y"),)
得到年龄
在E2单元格输入
=IF(A2<>"",IF(MOD(RIGHT(LEFT(A2,17)),2),"男","女"),)
得到性别。

Excel中,用身份证号码自动生成性别和出生年月

Excel中,用身份证号码自动生成性别和出生年月

【转载】Excel中,用身份证号码自动生成性别和出生年月
2009-10-03 10:51
说明:公式中的A1是身份证号
身份证号码为15位的,最后一位号码能决定性别,奇数为男性,偶数为女性;身份证号码为18位的,倒数第二位号码能决定性别,奇数为男性,偶数为女性。

1、根据身份证号码求性别:
=IF(LEN(A1)=15,IF(MOD(VALUE(RIGHT(A1,1)),2)=0,"女","男
"),IF(LEN(A1)=18,IF(MOD(VALUE(MID(A1,17,1)),2)=0,"女","男"),"身份证错"))
身份证号码为15位的,第七、八位为出生年,第九、十位为出生月,第十一、十二位为出生日;身份证号码为18位的,第七、八、九、十位为出生年,第十一、十二位为出生月,第十三、十四位为出生日。

2、根据身份证号码求出生年月:
=IF(LEN(A1)=15,CONCATENATE("19",MID(A1,7,2),".",MID(A1,9,2)),IF(LEN(A1 )=18,CONCATENATE(MID(A1,7,4),".",MID(A1,11,2)),"身份证错"))
3、根据身份证号码求年龄:
=IF(LEN(A1)=15,year(now())-1900-VALUE(MID(A1,7,2)),if(LEN(A1)=18,year( now())-VALUE(MID(A1,7,4)),"身份证错"))。

Excel-VBA自定义函数根据身份证获取日期年龄性别

Excel-VBA自定义函数根据身份证获取日期年龄性别

Excel-VBA自定义函数根据身份证获取日期年龄性别应用场景根据身份证号码获取年龄、生日或性别任一信息知识要点1:开发一个名为 SFZ的函数,第一个参数为必选参数,用于引用身份证号码存放的单元格,第二个参数为可选参数,用于指定信息的类型,包括年龄(NL)、生日(SR)、和性别(XB)2:UCase 函数包含转成大写的字符串只有小写的字母会转成大写;原本大写或非字母之字符保持不变3:DateSerial 函数返回包含指定的年、月、日的 Variant (Date)。

文本转换为日期格式4:DATEDIF函数是Excel隐藏函数返回两个日期之间的年\月\日间隔数Function SFZ(Cell As Range, Optional Options As String = 'XB') As StringApplication.Volatile '声明为易失性函数Dim Temp As StringIf Len(Cell) = 0 Then SFZ = '': Exit Function '如果单元格引用空白,则返回空白且终止函数过程'如果引用单元格长度不是15或者18 则返回空白,且终止过程If Len(Cell.Text) <> 15 And Len(Cell.T ext) <> 18 Then SFZ = '': Exit Function'如果第二参数为空文本,或者不等于NL\SR\XB则函数返回空文本,同时退出函数过程 Ucase ,将字符串转为大写If Options = '' Or (UCase(Options) <> 'NL' And UCase(Options) <> 'SR' And UCase(Options) <> 'XB') Then SFZ = '': Exit Function'如果第二参数为XB,那么通过iif函数配合MOD函数,判断表示身份证的哪一位是否为奇数,是奇数则返回女If UCase(Options) = 'XB' Then SFZ = IIf((Mid(Cell.Text, 15, 3) Mod 2), '男', '女'): Exit Function'如果身份证号码是15位,而且第七位数是0,那么使用20连接第七位开始的6位数,且使用“-”作为年月日的分割符If Len(Cell.Text) = 15 And Mid(Cell.Text, 7, 1) = 0 Then SFZ = '20' & Mid(Cell.Text, 7, 2) & '-' & Mid(Cell.Text, 9, 2) & '-' & Mid(Cell.Text, 11, 2)'如果身份证号码是15位,而且第七位数大于0,那么使用20连接第七位开始的6位数,且使用“-”作为年月日的分割符If Len(Cell.Text) = 15 And Mid(Cell.Text, 7, 1) > 0 Then SFZ = '19' & Mid(Cell.Text, 7, 2) & '-' & Mid(Cell.Text, 9, 2) & '-' & Mid(Cell.Text, 11, 2)'如果身份证号码是18位,从第七位开始取8位数,且使用“-”作为年月日的分割符If Len(Cell.T ext) = 18 Then SFZ = Mid(Cell.T ext, 7, 4) & '-' & Mid(Cell.Text, 11, 2) & '-' & Mid(Cell.T ext, 13, 2)If UCase(Options) = 'NL' ThenDim Dat As DateDat = DateSerial(Split(SFZ, '-')(0), Split(SFZ, '-')(1), Split(SFZ, '-')(2)) '将前面取出的文本转换为日期格式'利用公式计算两个日期的间隔年数SFZ = Evaluate('datedif(' & Dat * 1 & ',NOW(),' & '''Y''' & ') ') End IfEnd Function。

提取身份证的性别、出生年月日的VBA

提取身份证的性别、出生年月日的VBA

提取身份证的出生年月日的VBA方法一:使用VBA建立自定义函数在EXCEL中建立模块,输入下列代码,则在单元格中就可以使用自定义函数XB(),则就可以根据身份份号码得出性别,使用自定义函数CS(),则就可以根据身份份号码得出出生日期。

'根据身份证号码求出生日期与性别Function xb(Number)If Len(Number) = 15 Thense = Val(Right(Number, 1))Select Case seCase 0, 2, 4, 6, 8xb = "女"Case 1, 3, 5, 7, 9xb = "男"End SelectEnd IfIf Len(Number) = 18 Thense = Val(Mid(Number, 17, 1))Select Case seCase 0, 2, 4, 6, 8xb = "女"Case 1, 3, 5, 7, 9xb = "男"End SelectEnd IfEnd FunctionFunction cs(Number) As DateIf Len(Number) = 15 Then cs = "19" + Mid(Number, 7, 2) + "-" + Mid(Number, 9, 2) + "-" + Mid(Number, 11, 2)If Len(Number) = 18 Then cs = Mid(Number, 7, 4) + "-" + Mid(Number, 11, 2) + "-" + Mid(Number, 13, 2)End Function方法二:使用函数=IF(LEN(C2)=15,concatenate("19",MID(C2,7,2),"-",MID(C2,9,2),"-",MID(C 2,11,2)),if(len(c2)<>18,"身份证错误",concatenate(MID(C2,7,4),"-",MID(C2,11,2),"-",MID(C2,13,2)))或=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"-"&MID(C2,9,2)&"-"&MID(C2,11,2),I F(LEN(C2)<>18,"身份证错误",MID(C2,7,4)&"-"&MID(C2,11,2)&"-"&MID(C2,13,2)))“性别”的方法与出生年月大同小异。

WPS身份证号码提取出生年月日的公式

WPS身份证号码提取出生年月日的公式

WPS身份证号码提取出生年月日的公式第一篇:WPS身份证号码提取出生年月日的公式WPSEXCEL公式 1、18位身份证号码提取出生年月日的公式:=MID(A1,7,4)&“-”&MID(A1,11,2)&“-”&MID(A1,13,2)注:A是列,1是行,&在数字键7的上方。

2、18位身份证号码提取性别男、女的公式:=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),MID(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"))第二篇:身份证号码提取公式合并两列文字:=CONCATENATE(h2,i2)知道生日生成身份证=440981&TEXT(f2,“emmdd”)&INT(10+RAND()*99)&IF(e2=“F ”,2,1)&INT(RAND()*9+1)中国居民身份证号码是一组特征组合码,原为15位,现升级为18位,其编码规则为:15位:6位数字常住户口所在县市的行政区划代码,6位数字出生日期代码,3位数字顺序码。

疑难53如何提取身份证号码中的出生日期并计算年龄

疑难53如何提取身份证号码中的出生日期并计算年龄

疑难53如何提取身份证号码中的出生日期并计算年龄疑难53 如何提取身份证号码中的出生日期并计算年龄如图3-15 所示,该表为某公司员工基本资料。

如何使用VBA 提取身份证号码中的出生日期,并计算每个员工的年龄?解决方案利用VBA 中的Mid 函数分别获取出生年月日,并用DateSerial 函数将其转换为日期,然后用DateDiff 函数计算出生年月与当前日期间隔的年数。

步骤1 按组合键【Alt F11】打开VBE。

步骤2 选择菜单“插入”→“模块”,并输入以下代码:1.Sub 获取身份证中出生日期()2.'变量声明3.Dim RowN As Long '行号4.Dim sIDNo As String '身份证号码5.'循环遍历6.For RowN = 2 To Cells(Rows.Count, 'A').End(xlUp).Row7.'获取身份证号码8.sIDNo = Cells(RowN, 'B').Value9.'提取出生年月10.Cells(RowN, 'C').Value = DateSerial _11.(Mid(sIDNo, 7, 4), Mid(sIDNo, 11, 2), Mid(sIDNo,12.13, 2))13.'使用DateDiff函数计算年龄(周岁)14.Cells(RowN, 'D').Value = DateDiff('yyyy', Cells(RowN, ' C').Value,15.Date)16.Next17.End Sub步骤3 返回工作表界面,在功能区的“开发工具”选项卡中单击【宏】按钮,执行“获取身份证中出生日期”宏后,即可得到出生日期以及年龄,如图3-16 所示。

原理说明※DateDiff 函数※DateDiff 函数可以计算两个日期之间的间隔,其语法为1.DateDiff(interval, date1, date2[, firstdayofweek[, firstweek ofyear]])其中,参数Interval 表示日期间隔以何种日期单位表示,可以为表3-5 中的任意常量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

提取身份证的出生年月日的VBA
方法一:使用VBA建立自定义函数
在EXCEL中建立模块,输入下列代码,则在单元格中就可以使用自定义函数XB(),则就可以根据身份份号码得出性别,使用自定义函数CS(),则就可以根据身份份号码得出出生日期。

'根据身份证号码求出生日期与性别
Function xb(Number)
If Len(Number) = 15 Then
se = Val(Right(Number, 1))
Select Case se
Case 0, 2, 4, 6, 8
xb = "女"
Case 1, 3, 5, 7, 9
xb = "男"
End Select
End If
If Len(Number) = 18 Then
se = Val(Mid(Number, 17, 1))
Select Case se
Case 0, 2, 4, 6, 8
xb = "女"
Case 1, 3, 5, 7, 9
xb = "男"
End Select
End If
End Function
Function cs(Number) As Date
If Len(Number) = 15 Then cs = "19" + Mid(Number, 7, 2) + "-" + Mid(Number, 9, 2) + "-" + Mid(Number, 11, 2)
If Len(Number) = 18 Then cs = Mid(Number, 7, 4) + "-" + Mid(Number, 11, 2) + "-" + Mid(Number, 13, 2)
End Function
方法二:使用函数
=IF(LEN(C2)=15,concatenate("19",MID(C2,7,2),"-",MID(C2,9,2),"-",MID(C 2,11,2)),if(len(c2)<>18,"身份证错误",concatenate(MID(C2,7,4),"-",MID(C2,11,2),"-",MID(C2,13,2)))

=IF(LEN(C2)=15,"19"&MID(C2,7,2)&"-"&MID(C2,9,2)&"-"&MID(C2,11,2),I F(LEN(C2)<>18,"身份证错误",MID(C2,7,4)&"-"&MID(C2,11,2)&"-"&MID(C2,13,2)))
“性别”的方法与出生年月大同小异。

=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)<>0,"男","女"),IF(LEN(C2)=18,IF(MOD(MID(C2,17,1),2)<>0,"男","女"),""))

=IF(LEN(C2)=15,IF(MOD(VALUE(RIGHT(C2,3)),2)=0,"女","男"),IF(LEN(C2)=18,IF(MOD(VALUE(MID(C2,15,3)),2)=0,"女","男"),""))
说明:函数concatenater()的功能:
将两个或多个文本字符串合并为一个文本字符串。

语法:CONCATENATE (text1,text2,...)
Text1, text2, ... 为2 到255 个将要合并成单个文本项的文本项。

这些文本项可以为文本字符串、数字或对单个单元格的引用。

注解:您也可使用连接符号(&) 计算运算符代替CONCATENATE 函数来连接文本项。

例如=A1&B1 与=CONCATENATE(A1,B1) 返回相同的值。

相关文档
最新文档