如何从身份证号中提取出生年月
默认分类 2008-11-17 10:26:39 阅读1174 评论0   字号:大中小 订阅
引用:如何从身份证号中提取出生年月
    其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。
    15位身份证号码:第78位为出生年份(两位数),第910位为出生月份,第1112位代表出生日期,第15位代表性别,奇数为男,偶数为女。
    18位身份证号码:第78910位为出生年份(四位数),第11、第12位为出生月份,第1314位代表出生日期,第17位代表性别,奇数为男,偶数为女。
    例如,某员工的身份证号码(15)320521*********,那么表示197287日出生,性别为女。如果能想办法从这些身份证号码中将上述个人信息提取出来,不仅快速简便,而且不容易出错,核对时也只需要对身份证号码进行检查,肯定可以大大提高工作效率。
    二、提取个人信息
    这里,我们需要使用IFLENMODMIDDATE等函数从身份证号码中提取个人信息。如图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位身份证号码的第78910位数字。
    MID(C2,9,4):从C2单元格中字符串的第9位开始提取四位数字,本例中表示提取18位身份证号码的第9101112位数字。
    IF(LEN(C2)=15,MID(C2,7,4),MID(C2,9,4))IF是一个逻辑判断函数,表示如果C2单元格是15位,则提取第7位开始的四位数字,如果不是15位则提取自第9位开始的四位数字。
    如果需要显示为“7012这样的格式,请使用DATE格式,并在单元格格式日期中进行设置。
    2.提取性别信息
    由于报表中各位员工的序号编排是按照上级核定的编制进行的,因此不可能按照男、女固定的顺序进行编排,如果一个一个手工输入的话,既麻烦又容易出错。
    例如性别信息统一在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单元格显示正确的性别信息,接下来就是选中填充柄直接拖曳。如图2所示,现在这份报表无论是提取信息或是核对,都方便多了!
+++++++====
自动录入出生日期
      (1)函数分解
  CONCATENATE函数将几个文本字符串合并为一个文本字符串。
  语法:CONCATENATE(text1,text2,...)
  Text1,text2,...130个要合并成单个文本项的文本项。文本项可以为文本字符串、数字或对单个单元格的引用。
  (2)实例分析
  与上面的思路相同,我们可以在E2单元格中输入公式“=IF(LEN(C2)=15,CONCATENATE("19",MID(C2,7,2),"",MID(C2,9,2),"",MID(C2,11,2),"mid函数提取年月日"),CONCCTENCTE(MID(C2,7,4),"",MID(C2,11,2),"",MID(C2,13,2),""))”。其中“LEN(C2)=15”仍然作为逻辑判断语句使用,它可以判断身份证号码15位的还是18位的,从而调用相应的计算语句。
  对15位的身份证号码来说,左起第712个字符表示出生年、月、日,此时可以使用MID函数从身份证号码的特定位置,分别提取出生年、月、日。然后用CONCATENATE函数将
提取出来的文字合并起来,就能得到对应的出生年月日。公式中“19”是针对早期身份证号码中存在2000年问题设计的,它可以在计算出来的出生年份前加上“19”。对“18”位的身份证号码的计算思路相同,只是它不存在2000年问题,公式中不用给计算出来的出生年份前加上“19”
  注意:CONCATENATE函数和MID函数的操作对象均为文本,所以存放身份证号码的单元格必须事先设为文本格式,然后再输入身份证号。
自动计算工龄
1.首先把Word中的客户档案全部复制到Excel中生成一个数据库文件。然后在数据库文件中新建一列,并命名为出生年月。因为身份证号有15位和18位,为了计算方便,先对身份证号进行排序。
2.MID函数计算出第一个客户的出生年月。函数表达方式如下:MIDE272),表示第一个客户的身份证号在E列第二行中,要从这个位置中的第7个文本始返回2个长度的字符。
回车确认后,“J2”中的值变为“62”,表示该职工62年出生。接着下拉J2公式复制单元格,快速求出每个职工的出生年月(若身份证为18位,则公式变为MIDE292))再把J列的格式改为数值型。
3.D2中输入计算机公式“=103-J2”就可求出该职工的实际年龄。下拉D2中的公式再次复制,近千个职工的年龄就一键敲定。
注:以上的方法中的出生年月只有在2000年以前才有效,如果客户中有2000年以后出生的人,则计算时还要做些变通。
补充
所谓文本函数,就是可以在公式中处理文字串的函数。例如,可以改变大小写或确定文字串的长度;可以替换某些字符或者去除某些字符等。而日期和时间函数则可以在公式中分析和处理日期值和时间值。关于这两类函数的列表参看附表,这里仅对一些常用的函数做简要介绍。
一、文本函数
(一)大小写转换
LOWER--将一个文字串中的所有大写字母转换为小写字母。
UPPER--将文本转换成大写形式。
PROPER--将文字串的首字母及任何非字母字符之后的首字母转换成大写。将其余的字母转换成小写。
这三种函数的基本语法形式均为 函数名(text)。示例说明:
已有字符串为:pLease ComE Here! 可以看到由于输入的不规范,这句话大小写乱用了。
通过以上三个函数可以将文本转换显示样式,使得文本变得规范。参见图1
LowerpLease ComE Here!= please come here!
upperpLease ComE Here!= PLEASE COME HERE!
properpLease ComE Here!= Please Come Here!
 
1
(二)取出字符串中的部分字符
Excel函数应用回顾
Excel函数应用之逻辑函数
Excel函数应用之数学和三角函数
Excel函数应用之函数简介
您可以使用MidLeftRight等函数从长字符串内获取一部分字符。具体语法格式为
LEFT函数:LEFT(text,num_chars)其中Text是包含要提取字符的文本串。Num_chars指定要由 LEFT 所提取的字符数。
MID函数:MID(text,start_num,num_chars)其中Text是包含要提取字符的文本串。Start_num是文本中要提取的第一个字符的位置。
RIGHT函数:RIGHT(text,num_chars)其中Text是包含要提取字符的文本串。Num_chars指定希望 RIGHT 提取的字符数。
比如,从字符串"This is an apple."分别取出字符"This""apple""is"的具体函数写法为。
LEFT("This is an apple",4)=This
RIGHT("This is an apple",5)=apple
MID("This is an apple",6,2)=is
 
2
(三)去除字符串的空白
在字符串形态中,空白也是一个有效的字符,但是如果字符串中出现空白字符时,容易在判断或对比数据是发生错误,在Excel中您可以使用Trim函数清除字符串中的空白。
语法形式为:TRIM(text)其中Text为需要清除其中空格的文本。
需要注意的是,Trim函数不会清除单词之间的单个空格,如果连这部分空格都需清除的话,建议使用替换功能。比如,从字符串"My name is Mary"中清除空格的函数写法为:TRIM("My name is Mary")=My name is Mary 参见图3
 
3
(四)字符串的比较
在数据表中经常会比对不同的字符串,此时您可以使用EXACT函数来比较两个字符串是否相同。该函数测试两个字符串是否完全相同。如果它们完全相同,则返回 TRUE;否则,
返回 FALSE。函数 EXACT 能区分大小写,但忽略格式上的差异。利用函数 EXACT 可以测试输入文档内的文字。语法形式为:EXACT(text1,text2)Text1为待比较的第一个字符串。Text2为待比较的第二个字符串。举例说明:参见图4

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