excel身份证中提取信息大全.docx

上传人:b****6 文档编号:8613984 上传时间:2023-02-01 格式:DOCX 页数:15 大小:25.30KB
下载 相关 举报
excel身份证中提取信息大全.docx_第1页
第1页 / 共15页
excel身份证中提取信息大全.docx_第2页
第2页 / 共15页
excel身份证中提取信息大全.docx_第3页
第3页 / 共15页
excel身份证中提取信息大全.docx_第4页
第4页 / 共15页
excel身份证中提取信息大全.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

excel身份证中提取信息大全.docx

《excel身份证中提取信息大全.docx》由会员分享,可在线阅读,更多相关《excel身份证中提取信息大全.docx(15页珍藏版)》请在冰豆网上搜索。

excel身份证中提取信息大全.docx

excel身份证中提取信息大全

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

默认分类2008-11-1710:

26:

39阅读1174评论0  字号:

大中小 订阅

引用:

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

    其实,身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是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位开始的四位数字,如果不是15位则提取自第9位开始的四位数字。

    如果需要显示为“70年12月”这样的格式,请使用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,...为1~30个要合并成单个文本项的文本项。

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

  

(2)实例分析

  与上面的思路相同,我们可以在E2单元格中输入公式“=IF(LEN(C2)=15,CONCATENATE("19",MID(C2,7,2),"年",MID(C2,9,2),"月",MID(C2,11,2),"日"),CONCCTENCTE(MID(C2,7,4),"年",MID(C2,11,2),"月",MID(C2,13,2),"日"))”。

其中“LEN(C2)=15”仍然作为逻辑判断语句使用,它可以判断身份证号码是15位的还是18位的,从而调用相应的计算语句。

  对15位的身份证号码来说,左起第7至12个字符表示出生年、月、日,此时可以使用MID函数从身份证号码的特定位置,分别提取出生年、月、日。

然后用CONCATENATE函数将提取出来的文字合并起来,就能得到对应的出生年月日。

公式中“19”是针对早期身份证号码中存在2000年问题设计的,它可以在计算出来的出生年份前加上“19”。

对“18”位的身份证号码的计算思路相同,只是它不存在2000年问题,公式中不用给计算出来的出生年份前加上“19”。

  注意:

CONCATENATE函数和MID函数的操作对象均为文本,所以存放身份证号码的单元格必须事先设为文本格式,然后再输入身份证号。

自动计算工龄

1.首先把Word中的客户档案全部复制到Excel中生成一个数据库文件。

然后在数据库文件中新建一列,并命名为“出生年月”。

因为身份证号有15位和18位,为了计算方便,先对身份证号进行排序。

2.用MID函数计算出第一个客户的出生年月。

函数表达方式如下:

MID(E2,7,2),表示第一个客户的身份证号在E列第二行中,要从这个位置中的第7个文本始返回2个长度的字符。

回车确认后,“J2”中的值变为“62”,表示该职工62年出生。

接着下拉J2公式复制单元格,快速求出每个职工的出生年月(若身份证为18位,则公式变为MID(E2,9,2))再把J列的格式改为数值型。

3.在D2中输入计算机公式“=103-J2”就可求出该职工的实际年龄。

下拉D2中的公式再次复制,近千个职工的年龄就一键敲定。

注:

以上的方法中的出生年月只有在2000年以前才有效,如果客户中有2000年以后出生的人,则计算时还要做些变通。

补充

所谓文本函数,就是可以在公式中处理文字串的函数。

例如,可以改变大小写或确定文字串的长度;可以替换某些字符或者去除某些字符等。

而日期和时间函数则可以在公式中分析和处理日期值和时间值。

关于这两类函数的列表参看附表,这里仅对一些常用的函数做简要介绍。

一、文本函数

(一)大小写转换

LOWER--将一个文字串中的所有大写字母转换为小写字母。

UPPER--将文本转换成大写形式。

PROPER--将文字串的首字母及任何非字母字符之后的首字母转换成大写。

将其余的字母转换成小写。

这三种函数的基本语法形式均为函数名(text)。

示例说明:

已有字符串为:

pLeaseComEHere!

可以看到由于输入的不规范,这句话大小写乱用了。

通过以上三个函数可以将文本转换显示样式,使得文本变得规范。

参见图1

Lower(pLeaseComEHere!

)=pleasecomehere!

upper(pLeaseComEHere!

)=PLEASECOMEHERE!

proper(pLeaseComEHere!

)=PleaseComeHere!

 

图1

(二)取出字符串中的部分字符

Excel函数应用回顾

●Excel函数应用之逻辑函数

●Excel函数应用之数学和三角函数

●Excel函数应用之函数简介

您可以使用Mid、Left、Right等函数从长字符串内获取一部分字符。

具体语法格式为

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提取的字符数。

比如,从字符串"Thisisanapple."分别取出字符"This"、"apple"、"is"的具体函数写法为。

LEFT("Thisisanapple",4)=This

RIGHT("Thisisanapple",5)=apple

MID("Thisisanapple",6,2)=is

 

图2

(三)去除字符串的空白

在字符串形态中,空白也是一个有效的字符,但是如果字符串中出现空白字符时,容易在判断或对比数据是发生错误,在Excel中您可以使用Trim函数清除字符串中的空白。

语法形式为:

TRIM(text)其中Text为需要清除其中空格的文本。

需要注意的是,Trim函数不会清除单词之间的单个空格,如果连这部分空格都需清除的话,建议使用替换功能。

比如,从字符串"MynameisMary"中清除空格的函数写法为:

TRIM("MynameisMary")=MynameisMary参见图3

 

图3

(四)字符串的比较

在数据表中经常会比对不同的字符串,此时您可以使用EXACT函数来比较两个字符串是否相同。

该函数测试两个字符串是否完全相同。

如果它们完全相同,则返回TRUE;否则,返回FALSE。

函数EXACT能区分大小写,但忽略格式上的差异。

利用函数EXACT可以测试输入文档内的文字。

语法形式为:

EXACT(text1,text2)Text1为待比较的第一个字符串。

Text2为待比较的第二个字符串。

举例说明:

参见图4

EXACT("China","china")=False

 

图4

二、日期与时间函数

在数据表的处理过程中,日期与时间的函数是相当重要的处理依据。

而Excel在这方面也提供了相当丰富的函数供大家使用。

(一)取出当前系统时间/日期信息

用于取出当前系统时间/日期信息的函数主要有NOW、TODAY。

语法形式均为函数名()。

(二)取得日期/时间的部分字段值

如果需要单独的年份、月份、日数或小时的数据时,可以使用HOUR、DAY、MONTH、YEAR函数直接从日期/时间中取出需要的数据。

具体示例参看图5。

比如,需要返回2001-5-3012:

30PM的年份、月份、日数及小时数,可以分别采用相应函数实现。

YEAR(E5)=2001

MONTH(E5)=5

DAY(E5)=30

HOUR(E5)=12

 

图5

此外还有更多有用的日期/时间函数,可以查阅附表。

下面我们将以一个具体的示例来说明Excel的文本函数与日期函数的用途。

三、示例:

做一个美观简洁的人事资料分析表

1、示例说明

在如图6所示的某公司人事资料表中,除了编号、员工姓名、身份证号码以及参加工作时间为手工添入外,其余各项均为用函数计算所得。

 

图6

在此例中我们将详细说明如何通过函数求出:

(1)自动从身份证号码中提取出生年月、性别信息。

(2)自动从参加工作时间中提取工龄信息。

2、身份证号码相关知识

在了解如何实现自动从身份证号码中提取出生年月、性别信息之前,首先需要了解身份证号码所代表的含义。

我们知道,当今的身份证号码有15/18位之分。

早期签发的身份证号码是15位的,现在签发的身份证由于年份的扩展(由两位变为四位)和末尾加了效验码,就成了18位。

这两种身份证号码将在相当长的一段时期内共存。

两种身份证号码的含义如下:

(1)15位的身份证号码:

1~6位为地区代码,7~8位为出生年份(2位),9~10位为出生月份,11~12位为出生日期,第13~15位为顺序号,并能够判断性别,奇数为男,偶数为女。

(2)18位的身份证号码:

1~6位为地区代码,7~10位为出生年份(4位),11~12位为出生月份,13~14位为出生日期,第15~17位为顺序号,并能够判断性别,奇数为男,偶数为女。

18位为效验位。

3、应用函数

在此例中为了实现数据的自动提取,应用了如下几个Excel函数。

(1)IF函数:

根据逻辑表达式测试的结果,返回相应的值。

IF函数允许嵌套。

语法形式为:

IF(logical_test,value_if_true,value_if_false)

(2)CONCATENATE:

将若干个文字项合并至一个文字项中。

语法形式为:

CONCATENATE(text1,text2……)

(3)MID:

从文本字符串中指定的起始位置起,返回指定长度的字符。

语法形式为:

MID(text,start_num,num_chars)

(4)TODAY:

返回计算机系统内部的当前日期。

语法形式为:

TODAY()

(5)DATEDIF:

计算两个日期之间的天数、月数或年数。

语法形式为:

DATEDIF(start_date,end_date,unit)

(6)VALUE:

将代表数字的文字串转换成数字。

语法形式为:

VALUE(text)

(7)RIGHT:

根据所指定的字符数返回文本串中最后一个或多个字符。

语法形式为:

RIGHT(text,num_chars)

(8)INT:

返回实数舍入后的整数值。

语法形式为:

INT(number)

4、公式写法及解释(以员工Andy为例说明)

说明:

为避免公式中过多的嵌套,这里的身份证号码限定为15位的。

如果您看懂了公式的话,可以进行简单的修改即可适用于18位的身份证号码,甚至可适用于15、18两者并存的情况。

(1)根据身份证号码求性别

=IF(VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2),"女","男")

公式解释:

a.RIGHT(E4,3)用于求出身份证号码中代表性别的数字,实际求得的为代表数字的字符串

b.VALUE(RIGHT(E4,3)用于将上一步所得的代表数字的字符串转换为数字

c.VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2用于判断这个身份证号码是奇数还是偶数,当然你也可以用Mod函数来做出判断。

d.=IF(VALUE(RIGHT(E4,3))/2=INT(VALUE(RIGHT(E4,3))/2),"女","男")及如果上述公式判断出这个号码是偶数时,显示"女",否则,这个号码是奇数的话,则返回"男"。

(2)根据身份证号码求出生日期

=CONCATENATE("19",MID(E4,7,2),"/",MID(E4,9,2),"/",MID(E4,11,2))

公式解释:

a.MID(E4,7,2)为在身份证号码中获取表示年份的数字的字符串

b.MID(E4,9,2)为在身份证号码中获取表示月份的数字的字符串

c.MID(E4,11,2)为在身份证号码中获取表示日期的数字的字符串

d.CONCATENATE("19",MID(E4,7,2),"/",MID(E4,9,2),"/",MID(E4,11,2))目的就是将多个字符串合并在一起显示。

(3)根据参加工作时间求年资(即工龄)

=CONCATENATE(DATEDIF(F4,TODAY(),"y"),"年",DATEDIF(F4,TODAY(),"ym"),"个月")

公式解释:

a.TODAY()用于求出系统当前的时间

b.DATEDIF(F4,TODAY(),"y")用于计算当前系统时间与参加工作时间相差的年份

c.DATEDIF(F4,TODAY(),"ym")用于计算当前系统时间与参加工作时间相差的月份,忽略日期中的日和年。

d.=CONCATENATE(DATEDIF(F4,TODAY(),"y"),"年",DATEDIF(F4,TODAY(),"ym"),"个月")目的就是将多个字符串合并在一起显示。

5.其他说明

在这张人事资料表中我们还发现,创建日期:

31-05-2001时显示在同一个单元格中的。

这是如何实现的呢?

难道是手工添加的吗?

不是,实际上这个日期还是变化的,它显示的是系统当前时间。

这里是利用函数TODAY和函数TEXT一起来创建一条信息,该信息包含着当前日期并将日期以"dd-mm-yyyy"的格式表示。

具体公式写法为:

="创建日期:

"&TEXT(TODAY(),"dd-mm-yyyy")

至此,我们对于文本函数、日期与时间函数已经有了大致的了解,同时也设想了一些应用领域。

相信随着大家在这方面的不断研究,会有更广泛的应用。

附一:

文本函数

函数名

函数说明

语法

ASC

将字符串中的全角(双字节)英文字母更改为半角(单字节)字符。

ASC(text)

CHAR

返回对应于数字代码的字符,函数CHAR可将其他类型计算机文件中的代码转换为字符。

CHAR(number)

CLEAN

删除文本中不能打印的字符。

对从其他应用程序中输入的字符串使用CLEAN函数,将删除其中含有的当前操作系统无法打印的字符。

例如,可以删除通常出现在数据文件头部或尾部、无法打印的低级计算机代码。

CLEAN(text)

CODE

返回文字串中第一个字符的数字代码。

返回的代码对应于计算机当前使用的字符集。

CODE(text)

CONCATENATE

将若干文字串合并到一个文字串中。

CONCATENATE(text1,text2,...)

DOLLAR

依照货币格式将小数四舍五入到指定的位数并转换成文字。

DOLLAR或RMB(number,decimals)

EXACT

该函数测试两个字符串是否完全相同。

如果它们完全相同,则返回TRUE;否则,返回FALSE。

函数EXACT能区分大小写,但忽略格式上的差异。

利用函数EXACT可以测试输入文档内的文字。

EXACT(text1,text2)

FIND

FIND用于查找其他文本串(within_text)内的文本串(find_text),并从within_text的首字符开始返回find_text的起始位置编号。

FIND(find_text,within_text,start_num)

FIXED

按指定的小数位数进行四舍五入,利用句点和逗号,以小数格式对该数设置格式,并以文字串形式返回结果。

FIXED(number,decimals,no_commas)

JIS

将字符串中的半角(单字节)英文字母或片假名更改为全角(双字节)字符。

JIS(text)

LEFT

LEFT基于所指定的字符数返回文本串中的第一个或前几个字符。

LEFTB基于所指定的字节数返回文本串中的第一个或前几个字符。

此函数用于双字节字符。

LEFT(text,num_chars)

LEFTB(text,num_bytes)

LEN

LEN返回文本串中的字符数。

LENB返回文本串中用于代表字符的字节数。

此函数用于双字节字符。

LEN(text)

LENB(text)

LOWER

将一个文字串中的所有大写字母转换为小写字母。

LOWER(text)

MID

MID返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。

MIDB返回文本串中从指定位置开始的特定数目的字符,该数目由用户指定。

此函数用于双字节字符。

MID(text,start_num,num_chars)

MIDB(text,start_num,num_bytes)

PHONETIC

提取文本串中的拼音(furigana)字符。

PHONETIC(reference)

PROPER

将文字串的首字母及任何非字母字符之后的首字母转换成大写。

将其余的字母转换成小写。

PROPER(text)

REPLACE

REPLACE使用其他文本串并根据所指定的字符数替换某文本串中的部分文本。

REPLACEB使用其他文本串并根据所指定的字符数替换某文本串中的部分文本。

此函数专为双字节字符使用。

REPLACE(old_text,start_num,num_chars,new_text)

REPLACEB(old_text,start_num,num_bytes,new_text)

REPT

按照给定的次数重复显示文本。

可以通过函数REPT来不断地重复显示某一文字串,对单元格进行填充。

REPT(text,number_times)

RIGHT

RIGHT根据所指定的字符数返回文本串中最后一个或多个字符。

RIGHTB根据所指定的字符数返回文本串中最后一个或多个字符。

此函数用于双字节字符。

RIGHT(text,num_chars)

RIGHTB(text,num_bytes)

SEARCH

SEARCH返回从start_num开始首次找到特定字符或文本串的位置上特定字符的编号。

使用SEARCH可确定字符或文本串在其他文本串中的位置,这样就可使用MID或REPLACE函数更改文本。

SEARCHB也可在其他文本串(within_text)中查找文本串(find_text),并返回find_text的起始位置编号。

此结果是基于每个字符所使用的字节数,并从start_num开始的。

此函数用于双字节字符。

此外,也可使用FINDB在其他文本串中查找文本串。

SEARCH(find_text,within_text,start_num)

SEARCHB(find_text,within_text,start_num)

SUBSTITUTE

在文字串中用new_text替代old_text。

如果需要在某一文字串中替换指定的文本,请使用函数SUBSTITUTE;如果需要在某一文字串中替换指定位置处的任意文本,请使用函数REPLACE。

SUBSTITUTE(text,old_text,new_text,instance_num)

T

将数值转换成文本。

T(value)

TEXT

将一数值转换为按指定数字格式表示的文本。

TEXT(value,format_text)

TRIM

除了单词之间的单个空格外,清除文本中所有的空格。

在从其他应用程序中获取带有不规则空格的文本时,可以使用函数TRIM。

TRIM(text)

UPPER

将文本转换成大写形式。

UPPER(text)

VALUE

将代表数字的文字串转换成数字。

VALUE(text)

WIDECHAR

将单字节字符转换为双字节字符。

WIDECHAR(text)

YEN

使用¥(日圆)货币格式将数字转换成文本,并对指定位置后的数字四舍五入。

YEN(number,decimals)

附二、日期与时间函数

函数名

函数说明

语法

DATE

返回代表特定日期的系列数。

DATE(y

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1