公历日期转八字的函数 转换农历日期的公式

频道:八字命理 日期: 浏览:3

不管是在头条,还是在其他自媒体;关于从身份证号码如何提取出生年月日是层出不穷,今天婶婶也来提取一哈,但是要来点特别的,不只是出生年月日,还有星座,属相,籍贯,干支等等,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即可。

怎么样,学会了么?

身份证号码中对于我们的信息有很多哦,所以不要随便提供哦!

等我研究透了,给大家算算生辰八字