Office中国论坛/Access中国论坛

标题: 与身份证相关的一些函数 [打印本页]

作者: 刘苏    时间: 2016-1-23 21:56
标题: 与身份证相关的一些函数
Sue教你
花式提取
身份证中的信息


身份证号码的结构
第一代身份证号码为15位:第1-6位区域代码,可对应出生地;第7-12位为6位出生日期;第13-15位为顺序码;第15位奇数则为男性偶数则为女性
第二代身份证号码为18位:第1-6位区域代码,可对应出生地;第7-14位为8位出生日期;第15-17位为顺序码;第17位奇数则为男性偶数则为女性

2000年后的新身份证从地区码后插入两位年份为20,并多一位校验码,在第18位。

设:15/18位身份证号码存储在A2单元格,对应以下公式可提取相关信息:
以下公式均为考虑15位身份证号码通用

提取生日:
常规思路及优化:
=IF(LEN(A2)=18,TEXT(MID(A2,7,8),"0-00-00"),TEXT(19&MID(A2,7,6),"0-00-00"))
=TEXT(IF(LEN(A2)=18,MID(A2,7,8),19&MID(A2,7,6)),"0-00-00")
=TEXT(MID(A2,7,IF(LEN(A2)=18,8,6)),"0-00-00")
牛逼青年:
=TEXT(MID(A2,7,6+2*(LEN(A2)=18)),"0-00-00")
=TEXT(MID(A2,7,LEN(A2)/2.25),"0-00-00")

走你Style:
=TEXT(MID(A2,7,11)-500,"0-00-00,")

提取年龄:
=DATEDIF(TEXT(MID(A2,7,LEN(A2)/2.25),"0-00-00"),TODAY(),"y")
=DATEDIF(TEXT(MID(A2,7,11)-500,"0-00-00,"),TODAY(),"y")
这个就是生日公式,外套DateDif函数

提取性别:
=IF(MOD(MID(A2,15,3),2), "男","女")
=IF(ISODD(MID(A2,15,3)), "男","女")
=IF(ISEVEN(MID(A2,15,3)),"女", "男")
我就是不爱用IF:
=MID("女男",ISODD(MID(A2,15,3))+1,1)
=MID("女男",MOD(MID(A2,15,3),2)+1,1)





不一定回复的邮箱:
Leedongxu@live.com


长按二维码关注







欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3