ICode9

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

Excel提取身份证出生日期②

2020-08-20 22:00:17  阅读:278  来源: 互联网

标签:F2 提取 00 单元格 Excel MID 身份证 出生日期 D2


问题场景


  • 从user表中的身份信息中提取用户的出生日期;

  • 以下方法也可适用于提取其他数据,不仅是身份证信息;

  • 以下图中数据都为测试数据,不具备真实性!

场景一


  • user表中的18位身份证,提取出生日期。

    • 不考虑15位身份证号,场景二会提及15位时的情况。

img

目标


  • 提取身份证信息列所有用户的出生日期。

解决方案一


用Ctrl+E提取填充。

  • 第一步:将D2单元格【身份证信息列】的7-14位(出生日期)复制到F2单元格。

    • 18位身份证信息的7-14位是出生日期。

img

  • 第二步:同时按Ctrl+E填充,最后结果。

    • 注意:这种方式提取出的不是日期格式。

img

解决方案二


用mid()函数和连接符号“&”提取

  • 函数解释
=MID(text, start_num, num_chars)
#从一个字符串中截取出指定数量的字符
#text被截取的字符,start_num从左起第几位开始,num_chars截取的长度是多少
  • 第一步:在F2单元格英文状态下输入:=MID(D2,7,4)&"-"&MID(D2,11,2)&"-"&MID(D2,13,2)。

    • 公式解释:MID(D2,7,4)、MID(D2,11,2)、MID(D2,13,2)分别截取的出生年、出生月、出生日,再用&符号将年月日用“-”连接起来(用"/"连接年月日也可以)。

img

  • 第二步:鼠标移到F2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。

img

  • 第三步:最后结果。

img

解决方案三


用data()函数和mid()函数提取。

  • 函数解释
=DATE(year,month,day)
#将结果将设为日期格式,且year,month,day三个参数为年、月、日参数
#MID函数解释看上面方案二
  • 第一步:在F2单元格英文状态下输入:=DATE(MID(D2,7,4),MID(D2,11,2),MID(D2,13,2))。

    • 公式解释:MID(D2,7,4)把D2单元格的数据从第7位开始,截取4位,是出生的年份,对应DATE()函数里的第一个参数:year,另外两个参数同理。

img

  • 第二步:鼠标移到F2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。

img

  • 第三步:最后结果为日期格式。

img

解决方案四


用Text()函数和mid()函数提取。

  • 函数解释
=TEXT(value,format_text)
#通过格式代码向数字应用格式,进而更改数字的显示方式
#value为引用的单元格数值,format_text为单元格格式参数代码,这里只用一种"00-00-00",表示日期
  • 第一步:在F2单元格英文状态下输入:=TEXT(MID(D2,7,8),"00-00-00")。

    • 公式解释:MID(D2,7,4)把D2单元格的数据从第7位开始,截取8位,是出生的日期,再用text()函数用日期方式显示。

img

  • 第二步:鼠标移到F2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。

img

  • 第三步:最后结果。

img

场景二


  • user表中的同时存在18位或15位身份证,提取出生日期。

    • 由于15位身份证号出生年只有2位,是7-8位,考虑到千年的因素(1900-1999,2000-2020(至今)),得先确定年份都是19开头还是20开头。假如19开头:
    • 该情况不常见,下面不详细解释函数。

img

目标


  • 提取身份证信息列所有用户的出生日期。

解决方案一


用Text()、Len()和Mid()函数。

=TEXT((LEN(D2)=15)*19&MID(D2,7,6+(LEN(D2)=18)*2),"00-00-00")
  • 第一步:在F2单元格中输入上述公式,鼠标移到F2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。

img

  • 第二步:最后结果(红框里的两条数据是特例,根据常识很大可能是20开头的年份)。

img

解决方案二


用IF()、Len()和Mid()函数。

=IF(LEN(D2)=15,"19"&MID(D2,7,2)&"-"&MID(D2,9,2)&"-"&MID(D2,11,2),MID(D2,7,4)&"-"&MID(D2,11,2)&"-"&MID(D2,13,2))
  • 第一步:在F2单元格中输入上述公式,鼠标移到F2单元格的右下角,出现实心的黑色【+】号,双击填充此公式。

img

  • 第二步:最后结果(红框里的两条数据是特例,根据常识很大可能是20开头的年份)。

img

解决方案三


  • len()函数筛选出身份证为15位和18位的,分别提取。

  • 15位提取方法同18位提取方法原理一样。

总结


实际业务场景复杂时,如果不能一次性解决问题,可择优使用、或可结合使用,多尝试,办法总比困难多!

标签:F2,提取,00,单元格,Excel,MID,身份证,出生日期,D2
来源: https://www.cnblogs.com/dr-fall/p/13538098.html

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

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

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

ICode9版权所有