EXCEL表格中 怎么用函数从身份证号获取出生日期,年龄、性别

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-18
在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)=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,"男","女") 这是区分性别

单元格中输入公式“=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位开始的四位数字,如果不是15位则提取自第9位开始的四位数字。
  如果需要显示为“70年12月”这样的格式,请使用DATE格式,并在“单元格格式→日期”中进行设置。
  例如性别信息统一在B列填写,可以在B2单元格中输入公式“=IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,"男","女")”,其中:
  LEN(C2)=15:检查身份证号码的长度是否是15位。
  MID(C2,15,1):如果身份证号码的长度是15位,那么提取第15位的数字。
  MID(C2,17,1):如果身份证号码的长度不是15位,即18位身份证号码,那么应该提取第17位的数字。
  MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2):用于得到给出数字除以指定数字后的余数,本例表示对提出来的数值除以2以后所得到的余数。
  IF(MOD(IF(LEN(C2)=15,MID(C2,15,1),MID(C2,17,1)),2)=1,"男","女"):如果除以2以后的余数是1,那么B2单元格显示为“男”,否则显示为“女”。
  回车确认后,即可在B2单元格显示正确的性别信息,接下来就是选中填充柄直接拖曳。

1、以excel2010版本为例,如图所示有下列的身份证号码,其中身份证格式是文本格式,否则后面的几位数字会变成0;

2、先获取出生日期,在B2单元格输入【=DATE(MID(A2,7,4),MID(A2,11,2),MID(A2,13,2)) 】点击回车键即可,MID函数是在指定的字符串中提取一定数量的字符。A2就是指定字符串,7指从号码中第7位开始提取,4是指从第七位开始提取后面4位数,然后用DATE函数转化成日期格式;

3、也可以用TEXT函数来提取出生日期,在B3单元格输入=TEXT(MID(A3,7,8),"0-00-00")   即可;

4、提取年龄的话在C2单元格输入【=YEAR(TODAY())-MID(A2,7,4)】后按回车键,则用现在的时间减去身份证中的年份,得出现在的年龄;

5、提取性别时,看身份证号码上的第17位数,奇数代表男,偶数代表女。在D2单元格输入【=IF(MOD(MID(A2,17,1),2),"男","女")  】,按回车键则可以判断性别。



以腾讯文档在线表格身份证函数举例,操作如下,非常简单。

以提取性别举例,取其他年龄、出生年月、星座、生肖等操作一样:

1、登录腾讯文档(搜索腾讯文档官网,使用网页版即可),将身份证号复制到腾讯文档在线表格里。选中空白表格,在菜单栏找到函数,并插入身份证函数

           
           

2、插入身份证函数后,在括号中选中A2身份证数据,会自动出现可以提取的信息,这里数据选择1

           
           

3、然后按下回车键,性别信息就提取出来了

           
           

4、最后批量提取:鼠标放在第一个表格右下角,变成“+”号后,向下拖动鼠标即可完成批量提取

           
           

腾讯文档这个身份证函数小白用户都很好操作,真的推荐大家使用~



出生日=IF(LEN(A1)=18,CONCATENATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)),

CONCATENATE(19,MID(A1,7,2),MID(A1,9,2),MID(A1,11,2)))

年龄

=DATEDIF(DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2)),NOW(),"y")

性别


=IF(MOD(IF(LEN(A1)=15,MID(A1,15,1),MID(A1,17,1)),2)=1,"男","女")



如何从身份证号码中提取性别

http://jingyan.baidu.com/article/597a064366b96b312b5243a4.html


如何从身份证号码中提取年龄

http://jingyan.baidu.com/article/cbf0e500f91f4e2eaa2893a5.html



如何从身份证号码中提取出生年月日

http://jingyan.baidu.com/article/fedf073748e02b35ac8977a3.html



希望帮到你



在Excel中根据身份证号码自动生成性别、出生日期和年龄
【身份证号判断性别的方法】 18位的看倒数第二位,奇男偶女; 15位的看倒数第一位,奇男偶女。
在Excel中根据身份证号码自动生成出生生日期和性别 下文说明以本图例为例,即“性别在B列,年龄在C列,出生日期在D列,身份证号码在E列” 新建的Excel表是常规格式,但身份证列应设置为文本格式
根据身份证号码自动生成性别:
方法一: 在E列输入身份证号,在B列填写性别,可以在B2单元格中输入公式 “=IF(MOD(IF(LEN(E2)=15,MID(E2,15,1),MID(E2,17,1)),2)=1,"男","女")”,其中: LEN(E2)=15:检查身份证号码的长度是否是15位。 MID(E2,15,1):如果身份证号码的长度是15位,那么提取第15位的数字。 MID(E2,17,1):如果身份证号码的长度不是15位,即18位身份证号码,那么应该提取第17位的数字。 MOD(IF(LEN(E2)=15,MID(E2,15,1),MID(E2,17,1)),2):用于得到给出数字除以指定数字后的余数,本例表示对提出来的数值除以2以后所得到的余数。 IF(MOD(IF(LEN(E2)=15,MID(E2,15,1),MID(E2,17,1)),2)=1,"男","女"):如果除以2以后的余数是1,那么 Excel学习教程Excel介绍Excel教程Excel表格Excel函数Excel图表B2单元格显示为“男”,否则显示为“女”。 15位身份证,看最后一位,奇男偶女;18位的,看第17位数,也是奇男偶女。
方法二: 如果你是想在Excel表格中,从输入的身份证号码内让系统自动提取性别,可以输入以下公式: =IF(LEN(E2)=15,IF(MOD(MID(E2,15,1),2)=1,"男","女"),IF(MOD(MID(E2,17,1),2)=1,"男","女")) 公式内的“E2”代表的是输入身份证号码的单元格。
根据身份证号码自动生成出生日期
格式一: 18位身份证号:410881197906055521 输出出生日期1979/06/05 =CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2)) 15位身份证号:410881790605552 输出出生日期1979/06/05 =CONCATENATE("19",MID(E6,7,2),"/",MID(E6,9,2),"/",MID(E6,11,2)) 公式解释: a. MID(E6,7,2)为在身份证号码中获取表示年份的数字的字符串 b. MID(E6,9,2) 为在身份证号码中获取表示月份的数字的字符串 c. MID(E6,11,2) 为在身份证号码中获取表示日期的数字的字符串 d. CONCATENATE("19",MID(E6,7,2),"/",MID(E6,9,2),"/",MID(E6,11,2))目的就是将多个字符串合并在一起显示。
格式二: 15位身份证号:410881790605552 出生日期790605 =IF(LEN(E6)=15,MID(E6,7,6),MID(E6,9,6)) 18位身份证号:410881197906055521 出生日期790605 =IF(LEN(E2)=15,MID(E2,7,6),MID(E2,9,6)) 公式解释: LEN(E6)=15:检查E6单元格中字符串的字符数目,本例的含义是检查身份证号码的长度是否是15位。 MID(E6,7,6):从E2单元格中字符串的第7位开始提取6位数字,本例中表示提取15位身份证号码的第7、8、9、10、11、12位数字。 MID(E6,9,6):从C2单元格中字符串的第9位开始提取6位数字,本例中表示提取18位身份证号码的第9、10、11、12、13、14位数字。 =IF(LEN(E2)=15,MID(E2,7,6),MID(E2,9,6)):IF是一个逻辑判断函数,表示如果额E2单元格是15位,则提取第7位开始的6位数字,如果不是15位则提取自第9位开始的6位数字。
根据出生日期计算年龄
D行为出生日期列,双击年龄所在列的第二行,然后输入下面公式,然后按ENTER键;再利用下拉方式将公式复制到该列的其他行中即可 =YEAR(NOW())-YEAR(D3)

出生日期:
=TEXT(MID(K2,11,4),"00月00日")
年龄:

=DATEDIF(TEXT(MID(K2,7,8),"0000-00-00"),TODAY(),"Y")
性别
=IF(MOD(MID(K2,17,1),2),"男","女")