ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 37121|回复: 139

[分享] 与身份证号码有关的计算【年龄、性别、出生年月、生肖、籍贯、退休】

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:31 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 f8b1987 于 2012-8-15 09:39 编辑

最近在QQ群里见到偶尔有人问身份证号码相关的计算,帮人解答过几次。参考一些高手的公式和自己设计的公式,整理分享给大家,有需要的可以下载看看。

身份证号码性别出生年月日年龄
412341198101094115
1981-1-9
1981-01-09
1981-1-9
1981-1-9
30
30
30
412341198102094115
1981-2-9
1981-02-09
1981-2-9
1981-2-9
30
30
30
412341198103094115
1981-3-9
1981-03-09
1981-3-9
1981-3-9
30
30
30
441881198104094115
1981-4-9
1981-04-09
1981-4-9
1981-4-9
30
30
30
310112810209522
310112810309522
310112811009522
310112811209522












重新更新,增加楼下几位高手的公式。

身份证号码相关计算.rar (9.89 KB, 下载次数: 1887)

员工信息籍贯、生肖、退休年限等.rar (92.52 KB, 下载次数: 2212)
PS:第二个附件有工作表保护,密码为空


感谢42楼的补充,增加籍贯、生肖等计算。


已更新楼下几位高手的公式到里面,感谢楼下几位补充。

以下是回帖中提供公式但未加入表内的,大家有需要也收藏一下:
EXCEL部落3群
11:04:31
=text(-1^mid(a1,15,3),"女;男")




35楼
TEXT(MOD(MID(A3,15,3),2),"男;;女")

TEXT(MID(A3,7,6+(LEN(A3)=18)*2),"0-00-00")

24楼
=IF(LEN(A27)=15,IF(MOD(RIGHT(A27,1),2)=1,"男","女"),IF(MOD(MID(A27,17,1),2)=1,"男","女"))

=TEXT(MID(A27,7,INT(LEN(A27)/2-1)),"1900-00-00")

25楼
年龄=YEAR(TODAY())-VALUE(MID(B8,7,4)),B8为存放身份证号码的单元格

14楼
=IF(LEN(F2)=18,MID(F2,18,1)=MID("10X98765432",MOD(SUMPRODUCT({7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2},--MID(F2,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1)),11)+1,1),"")

一个校验身份证号的公式,F2格为身份证号

18楼

15位18位身份证
出生日期提取公式:
=IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2))
性别提取公式:
=IF(LEN(A1)=15,IF(MOD(VALUE(RIGHT(A1,3)),2)=0,"女","男"),IF(LEN(A1)=18,IF(MOD(VALUE(MID(A1,15,1)),2)=0,"女","男"),"身份证错"))
年龄提取公式:
方法一:
=IF(LEN(A1)=15,YEAR(NOW())-1900-VALUE(MID(A1,7,2)),IF(LEN(A1)=18,YEAR(NOW())-VALUE(MID(A1,7,4)),"身份证错"))
方法一:
=DATEDIF("出生日期",TODAY(),"Y")

其他相关帖子

http://club.excelhome.net/thread-361404-1-1.html





TA的精华主题

TA的得分主题

 楼主| 发表于 2011-9-22 13:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有高手有更好的公式,欢迎回帖分享

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:39 | 显示全部楼层
  1. =IF(MOD(MID(A3,15,3),2),"男","女")
复制代码
性别公式,通用于15位和18位。

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:40 | 显示全部楼层
性别
=IF(MOD(MID(A3,15,3),2),"男","女")
出生年月日
=TEXT(MID(A3,7,LEN(A3)/2.2),"#-00-00")
年龄
=DATEDIF(TEXT(MID(A3,7,LEN(A3)/2.2),"#-00-00"),NOW(),"y")

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
还有很多种方法,楼主可以到论坛上搜一下,一大把。

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
路过路过!!

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
B3=IF(MOD(IF(LEN(A3)=15,15,17),2),"男","女")
I3=--TEXT(IF(LEN(A3)=15,19&MID(A3,7,6),MID(A3,7,8)),"0000-00-00")
M3=DATEDIF(I3,TODAY(),"y")

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
楼主搜搜“红尘居士”老师的专辑视频课件吧,很详细的哦。

TA的精华主题

TA的得分主题

发表于 2011-9-22 13:55 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-26 00:57 , Processed in 0.041010 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表