ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

身份证里取信息,妹子莫慌先别急

2021-03-14 22:55:09  阅读:231  来源: 互联网

标签:B2 别急 单元格 莫慌先 里取 日期 身份证 号码 函数


小伙伴们,你复工了吗?

今天老祝为大家准备了一组和身份证有关的函数公式,看看如何从身份证号码中提取出需要的信息。

如下图为所示,是一份模拟的员工信息表,A列是姓名,B列是身份证号码,C列是职级。

图片


★★★

首先咱们来提取出生年月,D2输入以下公式,向下复制。

=--TEXT(MID(B2,7,8),"0-00-00")

image.png

身份证号码中的第8位到15位是出生年月信息。

首先使用MID函数从A2单元格的第7位开始,提取出8个字符,得到字符 "19820102"。 再使用TEXT函数将这个字符串变成日期样式的文本,得到字符串“1982-01-02”。

由于TEXT函数的结果是文本型的内容,所以加上两个小减号 -- ,也就是计算负数的负数,通过四则运算,变成真正的日期序列。这样做的目的是为了便于后续的统计汇总。

如果公式结果显示为5位数字,别忘了设置一下单元格格式为日期。


★★★

接下来咱们要计算年龄,计算年龄时,可以借助刚刚已经提取出的出生年月,E2单元格输入以下公式,向下复制。

=DATEDIF(D2,"2020-1-1","y")

image.png

DATEDIF函数用于计算两个日期之间的间隔。用法是:

=DATEDIF(起始日期,截止日期,指定间隔类型)

本例中起始日期是D2的出生年月,截止日期是2020年1月1日。指定间隔类型为“Y”,表示计算间隔整年份。如果是“M”,就表示计算间隔的整月份了。

DATEDIF函数是隐藏函数,输入时没有屏幕提示,需要手工录入哦。

如果不借助D列的出生年月,公式可以这样写:

=DATEDIF(TEXT(MID(B2,7,8),"0-00-00"),"2020-1-1","y")


★★★

 领导除了关心年龄,更关心的应该就是性别了图片,使用以下公式,可以提取出员工的性别信息:

=IF(MOD(MID(B2,17,1),2),"男","女")

image.png

身份证号码中的第17位是性别信息,单数表示男,双数表示女。

首先使用MID函数,从B2单元格的第17位开始,提取出1个字符。

再使用MOD函数计算这个字符与2相除的余数。

最后使用IF函数判断,如果余数不等于0,返回男,如果余数是0,则返回女。 


★★★

 接下来,咱们要根据提取出的出生年月和性别以及职级信息,来计算退休年月,根据现有法规,男性退休年龄为60岁,女性干部退休年龄为55岁,女性年退休为50岁。

G2输入以下公式,向下复制。

=EDATE(D2,IF(F2="男",720,IF(F2&C2="女干部",660,600)))

image.png

EDATE函数的作用是根据指定的起始日期和间隔月份,计算从指定日期开始,间隔N个月后的日期。

本例中,指定起始日期是D2单元格的出生年月。

间隔月份的公式部分是:

IF(F2="男",720,IF(F2&C2="女干部",660,600))

这部分看起来有点小复杂,咱们慢慢拆解一下:

先用IF函数判断F2单元格的性别是不是等于"男",如果是,返回720(720个月,也就是60岁)。

如果不等于"男",就继续判断F2的性别连接C2的职级,是不是等于"女干部",如果是,返回660(660个月,也就是55岁),如果不等于"女干部",就返回600(600个月,即50岁)。


★★★

身份证号码的前六位表示户籍所在地,接下来咱们就看看如何根据身份证号码判断所在籍贯。

判断籍贯时,咱们要先准备一份对照表,百度就有很多,但是我下载的这个对照表里的户籍代码好像不太全。

图片

在信息表的G2单元格输入以下公式,向下复制。

=VLOOKUP(LEFT(B2,6)*1,身份证代码对照表!A:B,2,0)

image.png

首先用LEFT(B2,6)得到身份证号码的前六位,然后使用VLOOKUP函数在代码对照表里查找对应的籍贯信息。

因为LEFT函数得到的是文本型的数字,而咱们的代码表里是数值型的,所以用乘以1的方法转换为数值,否则查询会出错了。


★★★

 最后咱们再看看查找重复身份证号码的问题。

I2输入以下公式,向下复制。

=IF(COUNTIF(B:B,B2&"*")>1,"有重复","无重复")

image.png

身份证号码的查重和常规的数据查重不太一样,在COUNTIF函数的第二参数后要加上一个星号 &"*"。

COUNTIF函数在计算文本型数字时,会默认按数值型进行处理,但是Excel中的数字精度只有15位,而身份证号码是18位,这样就会把前15位相同的身份证全部识别为相同的内容。

咱们利用Excel中的数值不支持通配符的特点,在第二参数后连接上一个通配符星号 &"*"。就是相当于告诉Excel,要查找以B2单元格内容开头的文本,通过这样变通的手段,COUTNIF函数就听话了。


好了,咱们今天的内容就先这样吧,祝小伙伴和家人们安好。

练习文件:

https://pan.baidu.com/s/1M82Vl5Ik0dn1ZQVeyJCCMg

提取码: f6hr


标签:B2,别急,单元格,莫慌先,里取,日期,身份证,号码,函数
来源: https://blog.51cto.com/15127542/2659759

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有