不管是在头条,还是在其他自媒体;关于从身份证号码如何提取出生年月日是层出不穷,今天婶婶也来提取一哈,但是要来点特别的,不只是出生年月日,还有星座,属相,籍贯,干支等等,15/18通吃哦
通过身份证提取籍贯、农历年、属相、星座和出生至今天数,如果不出意外,头条上应该是独家报道哦~
独家报道
咱们先来看看成品:
成品展示
这是婶婶编造的两个数据,通过填写身份证号码,那么这个人的基础信息基本上就是一览无余了!那么是如何做到的呢?
1)提取出生年月日&生日
由于身份证信息有15和18位的,所以提取公式有两种,先简单介绍不带有验证有效性的!
15位:=TEXT(MID(A2,7,6),"19"&"00-00-00");
18位:=TEXT(MID(A2,7,8),"00-00-00")
运算说明:
此运算中运用了转换文本函数(text),指定提取(mid函数)的信息转化为指定的格式。(此处有为后文做铺垫)
如果需要将这两个公式融为一体,则需要加上判定公式IF函数;由于区别标准是字符,则要使用LEN函数;又要判断证件有限性,最后再外套IFERROR函数,具体如下:
=IFERROR(IF(LEN(A2)=15,TEXT(MID(A2,7,6),"19"&"00-00-00"),TEXT(MID(A2,7,8),"00-00-00")),"证件无效")
类比,生日的提取公式如下:
=IFERROR(IF(LEN(A2)=15,TEXT(MID(A2,9,4),"00月00日"),TEXT(MID(A2,11,4),"00月00日")),"证件无效")
小目标完成了
2)提取性别信息
=IFERROR(IF(LEN(A2)=15,IF(MOD(MID(A2,15,1),2)=1,"男","女"),IF(MOD(MID(A2,17,1),2)=1,"男","女")),"证件无效")
运算说明:
此运算中主要运用了循环余数(mod)函数,将A2单元格中从第15位数字起提取1位,并除以2,如果得到1,就是男性,否则就是女性(18位身份证信息则是17位奇数偶数决定性别)。<mod函数也是判断数字是否为奇偶数,或被某是否整除,此单元格中就运用了判断奇偶数,后续判定农历年干支则运用了被60整除。
提取性别信息
3)提取星座属相年纪,为相亲助力
当我们到了尴尬的年纪,总是难以避免被安排相亲什么的,现在我们就来为相亲前准备拒绝对象准备说辞吧!
相亲何时是个头
提取星座:
=IFERROR(IF(LEN(D2)=10,LOOKUP(--TEXT(D2,"m.dd"),{1.01,1.21,2.19,3.21,4.21,5.21,6.22,7.23,8.23,9.23,10.23,11.22,12.22},{"魔羯座","水瓶座","双鱼座","牡羊座","金牛座","双子座","巨蟹座","狮子座","处女座","天秤座","天蝎座","射手座","魔羯座"}),"证件无效"),"证件无效")
这里我们则运用了LOOKUP函数进行查找,则显然,查找的信息源是我们现场准备的!
关键:(1)利用text函数,提取出生年月日中生日并表现形式指定为"m.dd";
(2)准备后各星座的起始时间,设定区域;
(3)利用lookup函数进行区域查找。
提取属相:
=IFERROR(IF(LEN(D2)=10,MID("猴鸡狗猪鼠牛虎兔龙蛇马羊",MOD(YEAR(D2),12)+1,1),"证件无效"),"证件无效")
此处我们则运用了YEAR函数;
关键:(1)利用year函数,提取出生年月日中出生年份;
(2)利用MOD函数取余,设计好生肖排序;
(3)用MID函数进行匹配提取。
这里生肖排序为"猴鸡狗猪鼠牛虎兔龙蛇马羊",其理由时我们的除数是12,刚好被12整除的年份为猴年,所以猴年为首;这也是取余数后“+1”的原因。
另类相亲(照片来自于网络)
提取年龄
提取年龄有两种方法,我们先看看比较笨的:
=IFERROR(IF(LEN(A2)=15,2017-1900-MID(A2,7,2),2017-MID(A2,7,4)),"证件无效")
显然,这个方法比较弱智;
再看看逼格瞬间高大上的:
=IFERROR(IF(LEN(D2)=10,DATEDIF(D2,TODAY(),"y"),"证件无效"),"证件无效")
这里使用了today函数(取今日时间)和DATEDIF函数:
DATEDIF函数主要用于计算两个日期之间的天数、月数或年数。其返回的值是两个日期之间的年\月\日间隔数。
关于text函数和datedif函数的具体使用可以参照昨天发布文章:详解时间日期函数datedif、text,你不知道的事
PS:对应的比较单位,年=”y”;月=”m”;日=”d”;
PS:DATEDIF函数对于表格程序中输入的日期格式是有限制的,如果输入1990.1.1这种是无效的,所以记得要输入:1990-1-1或1990/1/1这两种格式~
同理提取活了多少天也就比较简单了:
=IFERROR(IF(LEN(D2)=10,DATEDIF(D2,TODAY(),"d"),"证件无效"),"证件无效")
你自称什么
4)提取籍贯,是不是本地人一看便知
提取籍贯相对而言比较简单,不过需要准备材料——籍贯信息汇总表(放在sheet2)
=IFERROR(VLOOKUP(LEFT($A2,6),Sheet2!A:B,2,0),"证件无效")
籍贯信息汇总表
至于判断身份证有效性如下:
先来一个笨一点的:
=IF(OR(B2="证件无效",C2="证件无效",D2="证件无效",E2="证件无效",F2="证件无效",G2="证件无效",H2="证件无效",I2="证件无效",J2="证件无效"),"证件无效","证件有效")
运算说明:
此运算是运用(逆向思维)逻辑函数(if和or)判断前面单元格(b2,c2,d2,e2,f2,g2,h2,i2和j2)如果有一个显示为"证件无效",则说明此身份证证件无效,否则此身份证就有效。
思维方式一样,但是下面的就比较高大上了:
=IF(COUNTIF($B2:$K2,"证件无效")>=1,"证件无效","证件有效")
瞬间提升逼格有木有,只需要用上统计函数countif即可。
怎么样,学会了么?
身份证号码中对于我们的信息有很多哦,所以不要随便提供哦!
等我研究透了,给大家算算生辰八字