从身份证中提取出生年月的另类方法

amwyq 发表于: 2008-2-28 20:21 来源: 扑奔PPT网

如果你不会使用函数从身份证中提取出生年月,教你一个新的手工提取的方法:

 

大家对 从身份证中提取出生年月的另类方法 的评论
ffaaffaa 发表于 2008-2-28 23:38:52
学习了
几天就成斑竹了 高手........:D
taison 发表于 2008-2-29 00:33:22
真厉害,我也学会了拉,谢谢哦
tchang 发表于 2008-2-29 16:26:28
哈哈~果然另类!很实用
shiqiang 发表于 2008-3-06 23:35:36
究竟如何提取呢,怎么看不明白呢?
ilvsoft 发表于 2008-3-10 10:10:00
^_^,高,实在是高。
wrhsj8888 发表于 2008-3-27 09:33:39
厉害,谢谢楼主的分享!:D
胡不归 发表于 2008-3-28 09:05:58
这个真的不错,谢谢了。
柒分kù牛 发表于 2008-3-28 22:20:26
不错的技巧,学习了~~
:D
jenny_ji 发表于 2008-4-01 16:22:20
学会这个技巧了
成就感很强呢
谢谢搂主的详细演示
沐湘泞 发表于 2008-4-04 03:00:15
牛  还是牛X啊  支持
tff8888 发表于 2008-4-13 11:44:03
真不错,比函数简单哦。
tcjm 发表于 2008-8-26 09:05:07
好聪明的方法啊,搂住太厉害了!!
seo4587 发表于 2008-8-26 09:09:16
小强啊!赞美!:$ :D :$
hefner 发表于 2008-12-11 17:18:07
我有更简单的办法哦,可以用MID函数更方便地实现
函数式为=MID(单元格,7,8)
这是个很实用的取字符串的函数,意思就是从目标字符串的第7位取起,返回8个字符(刚好是出生年月日的位数)
大家可以试下看看
popkpop 发表于 2008-12-12 14:36:25
刚刚发现这个网站能找到办公自动化的使用方法和技巧,真是太棒了,电脑用了这么多年,其实只会一些最简单的皮毛,今后我的多多学习了 ,这里的朋友真是高人哪
wojiyuzhou 发表于 2008-12-12 23:04:02
不错哦学习学习
slijuns 发表于 2009-4-18 12:41:31
真是高人啊。
wshcw 发表于 2009-5-21 23:52:44
提取合法、有效的身份证中有关信息(新解)2008-02-02 16:42有效性公式(适用于新输入身份证号):
=AND(OR(LEN(A1)={15,18}),ISNUMBER(1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")),--TEXT(RIGHT(19&MID(A1,7,LEN(A1)/2-1),8),"#-00-00")>1828,--TEXT(RIGHT(19&MID(A1,7,LEN(A1)/2-1),8),"#-00-00")<TODAY())
性别(最短31字符):
=IF(ISODD(MID(A1,9,9)),"男","女")
=IF(ISEVEN(MID(A1,9,9)),"女","男")
=IF(MOD(MID(A2,15,3),2),"男","女")

考虑空值:

43字
=TEXT(MOD(0&MID(A2,15,3),2)-(A2=""),"男;;女")
42字
=TEXT(ISODD(0&MID(A2,9,9))-(A2=""),"男;;女")

出生日期:
=--TEXT(RIGHT(19&MID(A1,7,LEN(A1)/2-1),8),"#-00-00")

考虑空值:

=TEXT(TEXT((0&MID(A1,7,11))-500,"00-00-00,;!0"),"e-mm-dd;;;错误")

更完美的公式:

=TEXT(RIGHT(TEXT((0&MID(A4,7,11))-500,"1900-00-00,;!0"),10),"e-mm-dd;;;错误")

年龄:

=MOD(YEAR(NOW())-MID(A1,7,LEN(A1)/2-5),190)

或者:

=DATEDIF(TEXT(RIGHT(19&MID(A1,7,LEN(A1)/2-1),8),"#-00-00"),NOW(),"Y")
已有身份证的情况下,公式应加合法性,有效性判断,所以公式改为:
出生日期:
=IF(A1="","",IF(AND(LEN(A1)<>{15,18}),"错误",IF(ISERR(1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")),"错误",IF(OR(1*TEXT

(MID(A1,7,LEN(A1)/2-1),"#-00-00")<1828,1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")>TODAY()),"错误",--TEXT(RIGHT(19&MID(A1,7,LEN(A1)/2-1),8),"#-00-00")))))
年龄:
=IF(A1="","",IF(AND(LEN(A1)<>{15,18}),"错误",IF(ISERR(1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")),"错误",IF(OR(1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")<1828,1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")>TODAY()),"错误",MOD(YEAR(NOW())-MID(A1,7,LEN(A1)/2-5),190)))))
折算为天数:
=IF(A1="","",IF(AND(LEN(A1)<>{15,18}),"错误",IF(ISERROR(1*(TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00"))),"错误",IF(OR

(1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")<1828,1*TEXT(MID(A1,7,LEN(A1)/2-1),"#-00-00")>TODAY()),"错误",DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"#-00-00"),TODAY(),"D")))))

身份证第18位(校验码)的计算方法

1、将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2。
2、将这17位数字和系数相乘的结果相加。
3、再用求和数除以11,看余数是多少?
4、余数只可能有0-1-2-3-4-5-6-7-8-9-10这11个数字。其分别对应的最后一位身份证的号码为1-0-X-9-8-7-6-5-4-3-2。
5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2。
例如:某男性的身份证号码是53292719650626003X。我们要看看这个身份证是不是合法的身份证。
首先我们得出前17位的乘积和是189,然后用189除以11得出的结果是17+2/11,也就是说其余数是2。最后通过对应规则就可以知道余数2对应的数字是x。所以,可以判定这是一个合格的身份证号码。

=IF(LEN(A1)=15,REPLACE(A1,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLACE(A1,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A1)

身份证中取日期的几个新公式:
42 =RIGHT(TEXT(MID(A1,7,11),"19#-00-00,"),10)
44 =--RIGHT(TEXT(MID(A1,7,11),"19#-00-00,"),10)
55 =--RIGHT(TEXT((19&MID(A1,7,LEN(A1)/2-1)),"#-00-00"),10)
57 =MOD(TEXT(MID(A1,LEN(A1)/2,6),"0-00-00")-3236,36525)+3236
58 =--TEXT(MOD((19&MID(A1,7,LEN(A1)/2-1)),19*10^8),"#-00-00")
69 =MOD(TEXT(MID(A1,LEN(A1)/2,6),"0-00-00")-TODAY(),36525)+TODAY()-36525

再补充:

=MID(TEXT(19&MID(A1,7,11),"000000-00-00,"),3,10)
=TEXT(MOD(19&INT(MID(A1,7,11)/10^3),19*10^8),"#-00-00")
=TEXT(INT(MID(A1,7,11)/10^3),"[<1000000]1900-00-00;#-00-00")
年龄:
=MOD(YEAR(NOW())-TEXT(MID(A1&"00",7,13),"0,,,"),190)
qqzhw 发表于 2009-5-22 00:47:01
简单易学,感谢楼主!学到新的技巧,很实用!
姚莹 发表于 2009-7-29 17:16:31
o  ,是这样的啊,了解了解,谢谢楼主的演示
最新PPT模板
最新贴子
PPT热贴