身份证身份证生日{%>--%>Excel判断身份证号校验码Excel判断身份证号校验码假设在一个工作表中:A列是姓名,B列是身份证号码,C列是备注。在B列中输入18位身份证号码后,在C2单元格中输入计算数组公式:=RIGHT(B2,1)=MID("1" />
文档库 最新最全的文档下载
当前位置:文档库 › 编写一个JSP页面,实现根据一个人的18位身份证显示出生日的功能来,要求把表达式声明和Scriptlet全部用到

编写一个JSP页面,实现根据一个人的18位身份证显示出生日的功能来,要求把表达式声明和Scriptlet全部用到

编写一个JSP页面,实现根据一个人的18位身份证显示出生日的功能来,要求把表达式声明和Scriptlet全部用到
编写一个JSP页面,实现根据一个人的18位身份证显示出生日的功能来,要求把表达式声明和Scriptlet全部用到

编写一个JSP页面,实现根据一个人的18位身份证显示出生日的功能来,要求把表达式声明和Scriptlet全部用到,并把结果显示在表格中,如下表

<%@page language="java"contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

身份证

<% String id[]={"010020198810092211","0100201990093002211"}; %>

<%for(int i=0;i

{%>

<%}

%>

身份证生日
<%= id[1] %><%= id[i].substring(6, 10)%>-<%= id[i].substring(10, 12)%>-

<%= id[i].substring(12,14) %>

Excel判断身份证号校验码

Excel判断身份证号校验码 假设在一个工作表中:A列是姓名,B列是身份证号码,C列是备注。在B列中输入18位身份证号码后,在C2单元格中输入计算数组公式: =RIGHT(B2,1)=MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1) 然后再将该公式复制给C列其他单元格。 公式的计算结果是一个逻辑值,True表示校验正确,即计算出来的校验码与输入的相同,而False则表示校验错误。值得注意的是,使用校验码进行校验判断为正确的身份证号码未必是正确的,但判断为错误的则肯定是错误的,即通过校验的只是身份证号码正确的必要条件而非充分条件。当然,在实际输入中,身份证号码输入错误而校验正确的情况很少见。在大多数情况下,使用校验码进行校验可以大大提高身份证号码输入的正确性。 RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。 MID 返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。 MOD 返回两数相除的余数。SUM 返回某一单元格区域中所有数字之和。ROW 返回引用的行号。INDIRECT 返回由文本字符串指定的引用。 或者输入数组公式: =IF(LEN(B2)<>18,"错误 ",IF(MID("10X98765432",MOD(SUM(MID(B2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=MID(B2,18,1), "正确","错误"))

通过excel公共函数计算二代公民身份证号码末位校验码

通过excel公共函数计算二代公民身份证号码末位校验码/验证码(附公式可直接使用) 闲来无事,用EXCEL写了个公式(本文最后),可以根据身份证号码前17位计算第18位校验码的,经过验证,非常有效。 使用这个公式可以自己随意编造可以通过验证的身份证号码(感觉在为办证的做贡献。。。) 18位身份证号码的结构: 现在的二代身份证由18位数字组成 1、前6位是行政区规划代码,第一位是区位号(如西北、西南),第二位为省份编号,第三、四位是城市编号,第五、六位是县区编号,01-19代表市辖区,20以后代表郊县、县级市等辖区。 具体的行政区域规划码可以可以在国家统计局网站查询: https://www.wendangku.net/doc/0612190323.html,/tjbz/xzqhdm/t20021125_46781.htm 2、第7-14位是出生年月日,格式是yyyymmdd; 3、第15-17位是顺序码,即同一地区相同生日的人的顺序编码,随便写; 4、第18位是根据GB 11643-1999和IOS 7064计算出的校验码,计算方式比较复杂,文章中的公式就是用来计算这个校验码的! 下图是完整的身份证效验码计算方式: 但是因为上图中的公式太多,不方便直接使用,所以我把上图中所有的公式整合到了一个单元格中,就是下面的超级公式~! 现在,打开excel,先将A1单元格属性设置为文本,再把你准备好的1-17位身份证号码填入A1单元格,然后把公式拷到随便哪个单元格中,完整的身份证号码就计算出来了!还可以用下拉的方式同时计算多个号码,很省事吧!

公式如下: =IF((LEN(A1))=17,(A1&IF(VALUE(MOD((SUM((MID(A1,1,1))*7,(MID(A1,2,1)) *9,(MID(A1,3,1))*10,(MID(A1,4,1))*5,(MID(A1,5,1))*8,(MID(A1,6,1))*4, (MID(A1,7,1))*2,(MID(A1,8,1))*1,(MID(A1,9,1))*6,(MID(A1,10,1))*3,(MI D(A1,11,1))*7,(MID(A1,12,1))*9,(MID(A1,13,1))*10,(MID(A1,14,1))*5,(M ID(A1,15,1))*8,(MID(A1,16,1))*4,(MID(A1,17,1))*2)),11))=0,1,(IF(VALU E(MOD((SUM((MID(A1,1,1))*7,(MID(A1,2,1))*9,(MID(A1,3,1))*10,(MID(A1, 4,1))*5,(MID(A1,5,1))*8,(MID(A1,6,1))*4,(MID(A1,7,1))*2,(MID(A1,8,1) )*1,(MID(A1,9,1))*6,(MID(A1,10,1))*3,(MID(A1,11,1))*7,(MID(A1,12,1)) *9,(MID(A1,13,1))*10,(MID(A1,14,1))*5,(MID(A1,15,1))*8,(MID(A1,16,1) )*4,(MID(A1,17,1))*2)),11))=1,0,(IF(VALUE(MOD((SUM((MID(A1,1,1))*7,( MID(A1,2,1))*9,(MID(A1,3,1))*10,(MID(A1,4,1))*5,(MID(A1,5,1))*8,(MID (A1,6,1))*4,(MID(A1,7,1))*2,(MID(A1,8,1))*1,(MID(A1,9,1))*6,(MID(A1, 10,1))*3,(MID(A1,11,1))*7,(MID(A1,12,1))*9,(MID(A1,13,1))*10,(MID(A1 ,14,1))*5,(MID(A1,15,1))*8,(MID(A1,16,1))*4,(MID(A1,17,1))*2)),11))= 2,"X",12-VALUE(MOD((SUM((MID(A1,1,1))*7,(MID(A1,2,1))*9,(MID(A1,3,1) )*10,(MID(A1,4,1))*5,(MID(A1,5,1))*8,(MID(A1,6,1))*4,(MID(A1,7,1))*2 ,(MID(A1,8,1))*1,(MID(A1,9,1))*6,(MID(A1,10,1))*3,(MID(A1,11,1))*7,( MID(A1,12,1))*9,(MID(A1,13,1))*10,(MID(A1,14,1))*5,(MID(A1,15,1))*8, (MID(A1,16,1))*4,(MID(A1,17,1))*2)),11)))))))),"输入长度不等于17位!")

身份证号码构成

号码构成1 地址码 (身份证号码前六位)表示编码对象常住户口所在县(市、镇、区)的行政区划代码。1-2位省、自治区、直辖市代码;3-4位地级市、盟、自治州代码;5-6位县、县级市、区代码。 2 生日期码 (身份证号码第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。 3 顺序码 (身份证号码第十五位到十七位)地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。 4 校验码 (身份证号码最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且中国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。编辑本段号码含义居民身份证是国家法定的证明公民个人身份的证件。为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要点: 一、有效期限 居民身份证的有效期限分为10年、20年、长期三种。16周岁至25周岁的,发给有效期为10年的居民身份证;26周岁至45周岁的,发给有效期为20年的居民身份证;46周岁以上的,发给长期有效的居民身份证。证件有效期限从签发之日起计算。如某人1949年9月20日出生,1984年35周岁时申领居民身份证,签发日期为1984年12月31日,他属于26至45周岁这一年龄段,证件有效期限属于20年这一档次,到2004年12月30日有效期满。查验或检查时,应对照检查证件有效期限与持证人年龄,签发日期三者之间的关系。 二、编号识别 1、身份证编码规则如下:根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。地址码(身份证前六位)表示编码对象第一次申领居民身份证时的常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到网站查询到最新的县及县以上的行政编码资料。)生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。顺序码(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。校验码(身份证最后一位)是根据前面十七位数字码,按照ISO7064:1983.MOD11-2校验码计算出来的检验码。 2、从1999年10月1日起,全国实行公民身份证号码制度,居民身份证编号由原15位升至18位。前6位为地址码;第七位至14位为出生日期码,此码由6位数改为8位数,其中年份用4位数表示;第

最新-第二代身份证号码提取出生年月日的公式-(很简单)

1、第二代身份证号码提取出生年月日的公式: =MID(A1,7,4)&"-"&MID(A1,11,2)&"-"&MID(A1,13,2) 注:A是列,1是行,&在数字键7的上方。 2、第二代身份证号码提取性别男、女的公式: =IF(MOD(MID(A1,17,1),2),"男","女") 注:A是列,1是行。 3、excel用身份证号算年龄的工式 比如身份证号保存在a1单元格,那么可以使用=mid(a1,7,4)来取出出生年,再用当前年份减去这个就是年龄了。 4、提取身份证出生年月 ="19"&MID(B1,9,2)&"年"&MID(B1,11,2)&"月"&MID(B1,13,2)&"日" 5、提取身份证年龄 =YEAR(NOW())-YEAR(IF(LEN(B1)=18,DATE(MID(B1,7,4),MID(B1,11,2),M ID(B1,13,2)),DATE(MID(B1,7,2),MID(B1,9,2),MID(B1,11,2)))) 6、提取身份证性别 =IF(LEN(B1)=15,IF(MOD(MID(B1,15,1),2)=1,"男","女"),IF(MOD(MID(B1,17,1),2)=1,"男","女")) 7、公式内的“B1”代表的是输入身份证号码的单元格。 Excel自动提取身份证中生日和性别以及年龄 (注意:以B2单元格中是18位身份证号为例) 一、提取出生日期的输入公式 =MID(B2,7,4)&"年"&MID(B2,11,2)&"月"&MID(B2,13,2)&"日" 二、判断性别“男女”的输入公式

=IF(MID(B2,17,1)/2=TRUNC(MID(B2,17,1)/2),"女","男") 三、利用身份证号码求年龄 =IF(B2="","",DATEDIF(TEXT((LEN(B2)=15)*19&MID(B2,7,6+(LEN (B2)=18)*2),"#-00-00"),TODAY(),"y")) 八、计算年龄的公式? datedif(开始日期,结束日期,"M") 九、用公式计算最大年龄? max(D3:D21) 十、用公式计算25--35岁之间的人数? =COUNTIFS(D3:D21,">"&25,D3:D21,"<"&35) 十一、计算25岁以下的人数? =COUNTIF(D3:D21,">"&25) 十二、计算25岁以下人数的比例? =COUNTIF(D3:D21,">"&25)/count(D3:D21) 十三、用excel做表输入年月日,可以变成例如1986-01-01的格式吗?能的话怎么变? 先选中单元格,鼠标右击,“设置单元格格式”,“数字”,“自定义”,在类型处输入 e-mm-dd 确定 十四、1.自动录入性别: “=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","女"),IF(MOD(MID(C2,17,1),2)=1,"男","女"))” if假如(len(C2)得到C2的字符长度等于15,[15时mod除以2的余数(取mid(C2单元格,第15个的,1个字符),除以2)],[不等于15条

身份证编码规则

身份证编码规则 一、编码规则: 根据中华人民共和国国家有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码。 2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,分别用4位、2位(不足两位加0)、2位(不足两位加0)数字表示,之间不用分隔符。 3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 4.校验码(R),一位数字,通过前17位数字根据一定计算得出。 二、关于地址码含义的详细解释: 身份证前六位是地区代码,我们用ABCDEF表示。代码的解释规则如下: A 国内区域: 1 华北三省二市 2 东北三省 3 华东六省一 4 华南六省 5 西南四省一市 6 西北五省 7 台湾 8 港澳 B或者说是AB,就是前2位:省(直辖市,自治区,特别行政区)代码按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。 具体省(直辖市,自治区,特别行政区)代码如下:11-15 京津冀晋21-23 辽吉黑 31-37 沪苏浙皖闽赣鲁 41-46 豫鄂湘粤桂琼50-54 渝川贵云藏 61-65 陕甘青宁新 81-82 港澳 CD城市代码:从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳 2102=大连…… 只有地级城市有独立的城市代码,县级市没有。 EF:市辖区、郊区、郊县、县级市代码:如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开始指代特定的区。其中:E=0代表市辖区 E=1代表郊区 E=2代表郊县 E=8代表县级市对于直辖市,从01开始就依次排区,没有市区和郊区的代码区分。 三、生日期码(YYYYMMDD): 表示编码对象出生的年、月、日,分别用4位、2位(不足两位加0)、2位(不足两位加0)数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。

身份证校验码的解释

身份证校验码的解释 新居民身份证的号码是按照国家的标准编制的,由18位组成:前六位为行政区划代码,第七至第十四位为出生日期码,第15至17位为顺序码,第18位为校验码。作为尾号的校验码,是由号码编制单位按统一的公式计算出来的,如果某人的尾号是0-9,都不会出现X,但如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。 身份证中第十八位数字的计算方法为: 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。 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

这里面说的很清楚了,最后一位是用来辨别身份证真假的一种办法。而不是同年同月同日生的人的识别码。 贴个JA V A实现的校验算法 public static char doV erify(String id); { char pszSrc[]=id.toCharArray();; int iS = 0; int iW[]={7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; char szVerCode[] = new char[]{'1','0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; int i; for(i=0;i<17;i++); { iS += (int);(pszSrc-'0'); * iW; } int iY = iS%11; return szVerCode[iY]; } =IF(LEN(A101)=15,REPLACE(A101,7,,19)&MID("10X98765432",MOD(SUM(MID(REPLAC E(A101,7,,19),ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),A101 excel计算最后一位的公式,也就是个校验码而已

身份证号码第十八位效验码的计算方法

身份证号码第十八位效验码的计算方法- godson_h的专栏- CSDN 博客 默认分类2010-04-10 07:56:04 阅读141 评论0 字号:大中小订阅 身份证号码第十八位效验码的计算方法 关于身份证第18是怎么计算的,原理如下:根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 地址码(身份证前六位)表示编码对象常住户口所在县(市、旗、区)的行政区划代码。(所有区域的编码可以到这个网站https://www.wendangku.net/doc/0612190323.html,/tjbz/index.htm 查询到最新的县及县以上的行政编码资料。) 生日期码(身份证第七位到第十四位)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。 顺序码(身份证第十五位到十七位)为同一地址码所标识的区域范围内,对同年、月、日出生的人员编定的顺序号。其中第十七位奇数分给男性,偶数分给女性。 校验码(身份证最后一位)是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。 第十八位数字的计算方法为: 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。 例如:某男性的身份证号码是340524************。我们要看看这个身份证是不是合法的身份证。 首先:我们得出,前17位的乘积和是189 然后:用189除以11得出的结果是17 + 2/11,也就是说余数是2。 最后:通过对应规则就可以知道余数2对应的数字是x。所以,这是一个合格的身份证号码。

一个18位身份证校验计算函数.docx

-个18位身份证校验计算函数 因需要对15位旧身份证号码进行升位和校验、查询处理,又没有搜索到现成的函数,于是自己写了一个简单的过程,希望能够帮得上需要的朋友。 本函数的功能单一,只能校验第18位号码是否正确或者取得第18位号码,其他功能留给人家自C扩展吧! <% ' Version: 1. 0. 1 'Author: sfply(sfply@163. com) 'Last Modified: 2004/7/17 12:03 'Src是身份证号码,可以是15位也可以是18位,15位时只能返回验证码方式使用 'iChk参数取值真假,真代表校验Six是否18位身份证,并且校验第18位是否 正确号码而确定是否有效身份证,返冋只值为true或false ' 假代表返回止确的校验码,返回值为(l~x) dim myldentify myTdentify 二〃36050219781218133?〃 response .write chkldentiyCard(myldentify, false) Function chkldentiyCard(Src,iChk)

dim myWi, myAi, mySrc(17), i, myCount myAi =,z 10X98765432' myWi = split(z/7, 9, 10, 5, & 4, 2, 1, 6, 3, 7, 9, 10, 5, & 4, 2〃,〃,〃) if iChk then if len (Src) = 18 then for i = 0 to 16 mySrc(i)二mid(Src, i + 1, 1) myCouni 二myCount + mySrc(i) * myWi(i) next if mid(myAi, (mycount mod 11)+1,1) = right (Src,1) then chkldcntiyCard = true '返回结果,TRUE为合法身份证验证码 el se chkldentiyCard = false '返回结果,FALSE为非法身份证验证码 end if else chkldentiyCard = false '因为不是18位身份证所以返[H] FALSE end if el se if len(Src)二15 or len(Src)二18 then if len(Src) = 15 then Src = mid(Src, 1, 6) & "19〃 & mid(Src, 7, 9) for i = 0 to 16 mySrc(i)二mid(Src, i + 1, 1) myCount 二myCount + mySrc(i) * myWi (i) n ext chkldentiyCard = mid (myAi, (mycount mod 11)+1, 1)'返回正确的验证码else chkldentiyCard二false '输入不不是15位或18位身份证号 end if end if Encl Function

商品条码的校验码是如何计算的

商品条码的校验码是如何计算的 在百度上看到这样一个问题:为什么通过下载的标签制作软件制作的商品标签的校验位和原来的不一样?并附了两张图。这里小编用中琅领跑条码标签设计软件制作了一遍发现,最后一位校验位和原来的标签一样,没什么区别。经过一番缜密的研究分析,小编就明白了个大概,原来问题就出在那位朋友所谓的免费的条形码生成工具上。问题的原因就在于校验码是由编码方案决定的,普通的条码软件是做不了那么精密的,所以通过免费的条形码生成软件生成的校验位是不同的,而且不但如此,通过一些不专业的条码批量打印软件制作出来的商品标签是有一点的风险的,而且出了事情也是没有客服咨询和解答的,。所以个人还是建议大家使用一些专业的条码标签制作软件的。言归正传,那么,条码打印软件中校验码到底是如何生成的呢?下面小编搜集了以下几种校验码的计算方法,以供参考。 首先说商品条码。商品条码中需要计算校验码的有:EAN-8(8位),EAN-13(13位),UCC(UPC-A)(12位),GTIN-14(ITF-14)(14位),GLN(13位),SSCC(18位)等。它们虽然位数不同,但计算校验码的方法完全相同。1、包含校验码的所有数字从右向左编号,分别为1,2,3......18位; 2、从第2位开始,所有偶数位的权数为3,从第3位开始,所有奇数位的权数为1;3、将对应位置的代码数字与权数相乘,参见下图(以SSCC的18位数字为例);4、将所有乘积相加求和;(结果为109);5、对第4步的和,求MOD 10运算(将和109除以10,取其余数9);6、如果余数为0,则校验码为0,否则,用10减去余数的差即为校验码。(上例中校验码为1)。 其次是身份证校验码。身份证校验码的计算比较复杂一些, 1、自右向左为身份证号编号1-18; 2、确定各位数的权数,权数的计算公式为2^(i-1) mod 11 i—位数,第3位的权数为2^(3-1)=2^2=4, 4除以11,商0余4,则权数为4。再如第5位的权数为2^(5-1)=2^4=16,16除以11,商1余5,则权数为5。 3、将权数与对应的身份证号数字相乘; 4、将所有乘积相加求和;(示例中的184) 5、将第4步的结果除以11,求余数(示例中的8); 6、从下表的R值中找到第5步的结果,对应的C值即为校验码。(示例中8对应的是4)

范文:EXCEL身份证核对公式

EXCEL身份证核对公式 EXCEL中你输入的公民身份号码正确吗? 目录:1、输入错误自动红色显示提示 2、15位身份证号码升位为18位公民身份号码 3、自动生成出生日期和性别 4、中华人民共和国国家标准GB 11643-1999 公民身份号码 一、输入错误自动红色显示提示 在企业报送的EXCEL电子表格中,经常遇到公民身份号码输入错误而给工作带来不必要的麻烦,降低了工作效率。 有没有办法在公民身份号码录入错误时进行自动提示呢? 其实【中华人民共和国国家标准GB 11643-1999】对公民身份号码第18位校验码已作了详细的规定,只是我们在电算工作中很少用到而已。 可用以下方法在EXCEL中录入公民身份号码错误时自动红字显示: 选择需要录入公民身份号码的单元格(如A1),选择菜单:格式/条件格式。 ①点击条件1左边的下拉箭头,选择公式,在右边的公式栏中输入以下公式:

=AND(LEN(D4)<>0,LEN(D4)<>15,LEN(D4)<>18) 接着单击格式,点击字体,颜色选择红色,确定。 ②在条件格式中点添加,点击条件2左边的下拉箭头,选择公式,在右边的公式栏中输入以下公式: =MID("10X98765432",MOD(SUMPRODUCT(MID(D4,ROW($1:$ 17),1)*MOD(2^(18-ROW($1:$17)),11) ),11)+1,1)<>MID(D4,18,1) 接着单击条件2中的格式,点击字体,颜色选择红色,确定,确定。 右键按住A1单元格右下角的小黑点,向下拖至所需要录入公民身份号码的所有单元格,松开右键,选择仅填充格式。 在接着的录入中,凡是输入不是15位或18位,或者输入18位错误的公民身份号码都会红色显示。 身份证重复显蓝色的公式:COUNTIF($D$4:$D$65536,D4)>1 二、15位身份证号码升位为18位公民身份号码 要使单元格中A1中的15位身份证号码升位为18位公民身份号码,只需在单元格A2中输入以下公式即可: =REPLACE(A1,7,,19)&MID("10X98765432",MOD(SUMPRODU CT(MID(REPLACE(A1,7,,19),ROW($1:$1 7),1)*MOD(2^(18-ROW($1:$17)),11)),11)+1,1)或 =REPLACE(A1,7,,19)&LOOKUP(MOD(SUMPRODUCT(MID(RE PLACE(A1,7,,19),ROW($1:$17),1)*MOD(2

18位身份证号编制规则

18位身份证号编制规则 一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。 二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下: 1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T22 60的规定执行。 2. 出生日期码(YYYYMMDD):表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日分别用4位、2位(不足两位加0)、2(同上)位数字表示,之间不用分隔符。 3. 顺序码(XXX):表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。 4.校验码(R),一位数字,通过前17位数字根据一定计算得出。 三、关于地址码含义的详细解释: 身份证前六位是地区代码,我们用ABCDEF表示。代码的解释规则如下: A:国内区域 1 华北三省二市 2 东北三省 3 华东六省一市

4 华南六省 5 西南四省一市 6 西北五省 7 台湾 8 港澳 B(或者说是AB,就是前2位):省(直辖市,自治区,特别行政区)代码 按照A划定的分区定义省代码,有直辖市的,直辖市列前,其余按离直辖市的距离排序,没有直辖市的,按离北京的远近排序。 具体省(直辖市,自治区,特别行政区)代码如下: 11-15 京津冀晋蒙 21-23 辽吉黑 31-37 沪苏浙皖闽赣鲁 41-46 豫鄂湘粤桂琼 50-54 渝川贵云藏 61-65 陕甘青宁新 81-82 港澳 CD:城市代码 从01开始排,对于直辖市,CD=01表示市辖区,CD=02表示辖县;省的城市代码从省会开始排,比如2101=沈阳2102=大连…… 只有地级城市有独立的城市代码,县级市没有。 EF:市辖区、郊区、郊县、县级市代码

EXCEL身份证计算筛选公式

EXCEL身份证计算筛选公式 EXCEL身份证年龄数值(XX岁)计算公式: =DATEDIF(TEXT(MID(A1,7,INT(LEN(A1)/2-1)),"#-00-00"),TODAY(),"Y") =DATEDIF(TEXT(MID(A1,7,INT(LEN(A1)/2-1)),"#-00-00"),"2012-6-30","Y") EXCEL身份证年龄范围(<=>XX岁)筛选公式: =IF((DATEDIF(TEXT(MID(A1,7,LEN(A1)*2/3-4),"00-00- 00"),TODAY(),"Y"))>=65,"是","否") =IF((DATEDIF(TEXT(MID(A1,7,LEN(A1)*2/3-4),"00-00-00"),"2012-6-30","Y"))>=65,"是","否") EXCEL身份证年龄范围(XX岁~XX岁)筛选公式: =IF(AND((YEAR(TODAY())-MID(A1,7,4))>=18,(YEAR(TO DAY())-MID(A1,7,4)<=22)),"是","不是") =IF(AND((YEAR("2012-6-30")-MID(A1,7,4))>=18,(YEAR("2012-6-30")- MID(A1,7,4)<=22)),"是","不是") A1:身份证号所在单元格 TODAY:时间为到今天为止 2012-6-30:时间为到2012年6月30日为止 >=65:年龄范围大于等于65岁 >=18 <=22:年龄范围大于等于18岁且小于等于22岁若身份证号在A1,则上 述公式在B1输入得到年龄数值,而"是"或"否"/"是"或"不是"即筛选后得到的结果判定,再下拉复制,最后进行数据自动自定义筛选 EXCEL身份证性别(男/女)筛选公式:

Excel表格身份证号码提取出生日期的公式

Excel表格身份证号码提取出生日期的公式 (B2表示身份证号码所在的列位置) =MID(B2,7,4)&"-"&MID(B2,11,2)&"-"&MID(B2,13,2)回车→向下填充1. Excel表中用身份证号码中取其中的号码用:MID(文本,开始字符,所取字符数); 2. 15位身份证号从第7位到第12位是出生年月日,年份用的是2位数。 3. 18位身份证号从第7位到第14位是出生的年月日,年份用的是4位数。 一、提取出生年月: A、15位身份证号码: =MID(B2,7,2)&"-"&MID(B2,9,2)&"-"&MID(B2,11,2) 回车确认即可。 B、18位身份证号码: =MID(B2,7,4)&"年"&MID(B2,11,2)&"月"&MID(B2,13,2)&”日”回车确认即可。 二、提取性别: 18位身份证号码: =IF(MOD(MID(B2,17,1),2)=1,"男","女")回车确认即可。 *excel公式中=IF(MOD(MID(E4,17,1),2)=0,"女","男")是什么意思? IF是选择函数,当MOD(MID(E4,17,1),2)=0成立时,单元格显示“女”,否则显示“男”。 MOD是取模函数,即是一个求余函数,求MID(E4,17,1)除以2的余数。实质是判断MID(E4,17,1)的奇偶性。 MID从一个文本字符串的指定位置开始,截取指定数目的字符。MID(E4,17,1)是从E4单元格的文本中的第17个字符开始,取一个字符。 三、提取年龄: =year(today())-value(right(left(B2,10),4)) 回车确认即可。

一个18位身份证校验计算函数

一个18位身份证校验计算函数 因需要对15位旧身份证号码进行升位和校验、查询处理,又没有搜索到现成的函数,于是自己写了一个简单的过程,希望能够帮得上需要的朋友。 本函数的功能单一,只能校验第18位号码是否正确或者取得第18位号码,其他功能留给大家自己扩展吧! <% ' Version: 1.0.1 ' Author: sfply(sfply@https://www.wendangku.net/doc/0612190323.html,) ' Last Modified: 2004/7/17 12:03 ' Src是身份证号码,可以是15位也可以是18位,15位时只能返回验证码方式使用 ' iChk参数取值真假,真代表校验Src是否18位身份证,并且校验第18位是否正确号码而确定是否有效身份证,返回只值为true或false ' 假代表返回正确的校验码,返回值为(1~x) dim myIdentify myIdentify = "36050219781218133?" response.write chkIdentiyCard(myIdentify,false) Function chkIdentiyCard(Src,iChk) dim myWi,myAi,mySrc(17),i,myCount

myAi = "10X98765432" myWi = split("7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2",",") if iChk then if len(Src) = 18 then for i = 0 to 16 mySrc(i) = mid(Src,i+1,1) myCount = myCount + mySrc(i) * myWi(i) next if mid(myAi,(mycount mod 11)+1,1) = right(Src,1) then chkIdentiyCard = true '返回结果,TRUE为合法身份证验证码 else chkIdentiyCard = false '返回结果,FALSE为非法身份证验证码 end if else chkIdentiyCard = false '因为不是18位身份证所以返回FALSE end if else if len(Src) = 15 or len(Src) = 18 then if len(Src) = 15 then Src = mid(Src,1,6) & "19" & mid(Src,7,9) for i = 0 to 16 mySrc(i) = mid(Src,i+1,1) myCount = myCount + mySrc(i) * myWi(i) next chkIdentiyCard = mid (myAi,(mycount mod 11)+1,1) '返回正确的验证码 else chkIdentiyCard = false '输入不不是15位或18位身份证号 end if end if End Function

身份证号码换算年龄、性别、出生日期的公式

15位和18位的身份证号都合适的了。设内容如下: ........A列......B列......C列......D列.... 1 身份证号性别出生年月年龄 2(输入身份证号) 算年龄的: “=IF(OR(LEN(A2)=15,LEN(A2)=18),RIGHT(IF(IF(LEN(A2)=15,MID(A2,9,2),MID(A2,11,2) )*100+IF(LEN(A2)=15,MID(A2,11,2),MID(A2,13,2))>MONTH(TODAY())*100+DAY(TODA Y()),YEAR(TODAY())-IF(LEN(A2)=15,MID(A2,7,2),MID(A2,9,2))-1,YEAR(TODAY())-IF(L EN(A2)=15,MID(A2,7,2),MID(A2,9,2))),2),"证号错误")” 算性别的: “=IF(LEN(A2)=15,(IF(OR(ABS(RIGHT(A2))=1,ABS(RIGHT(A2))=3,ABS(RIGHT(A2))=5,A BS(RIGHT(A2))=7,ABS(RIGHT(A2))=9),"男","女 ")),(IF(OR(ABS(MID(A2,17,1))=1,ABS(MID(A2,17,1))=3,ABS(MID(A2,17,1))=5,ABS(MID( A2,17,1))=7,ABS(MID(A2,17,1))=9),"男","女")))” 算出生年月的: “=DATE(IF(LEN(E3)=15,MID(E3,7,2),MID(E3,9,2)),IF(LEN(E3)=15,MID(E3,9,2),MID(E3,1 1,2)),IF(LEN(E3)=15,MID(E3,11,2),MID(E3,13,2)))” 只要把输入身份证号的单元格格式设为“文本”就是最关键的,准确。 注:A2、E3是身份证号所在列和行,应相应改动 另一种方法 =DATEDIF(TEXT((LEN(A1)=15)*19&MID(A1,7,6+(LEN(A1)=18)*2),"00-00-00"),TODAY() ,"y" ) A1是身份证号,在B1中输入上面的公式试试 在Excel中按身份证号码提出一定年龄段的人出来 在Excel中,有一个几千人的工作表,现在我想把工作表中满70岁的人员提出来,能依靠的条件就是身份证。而身份证号有十八位号和十五位号两种。也就是说,要依据身份证号找出在36年之前出生的人,该如何操作。 假设你的表格中从A3单元格开始填写身份证号码,那么可在该列后面插入一列,即B列,在B3输入公式:=IF(LEN(A3)=18,MID(A3,7,4),"19"&MID(A3,7,2)) 。将公式拖动复制到需要的行。这时选中该列——右键——复制——在原位(B3)单击右键——选择性粘贴——选数值——确定(该步骤目的是将公式列变为数字列,便于筛选)。现在,选中第二行——数据——筛选——自动筛选——在B列的下拉菜单中选“自定义”——在“显示行”的相应框中输入“小于或等于”-“1936”——确定。所有在1936年及其以后出生的就筛选出来了。注意:以上公式既适合18位,又适合15位身份证号码提取年份。

身份证正确检验及验证公式

验证公式一 =IF(LEN(H20)=18,IF(RIGHT(H20,1)="X",IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18) )*7 LEFT(RIGHT(H20,17))*9 LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2 LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(H20,8))*7 LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10 LEFT(RIGHT(H20,5))*5 LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4 LEFT(RIGHT(H20,2))*2),11) 1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1)),"正确!","出错啦! "),IF(CHOOSE(MOD(SUM(LEFT(RIGHT(H20,18))*7 LEFT(RIGHT(H20,17))*9 LEFT(RIGHT(H20,16))*10 LEFT(RIGHT(H20,15))*5 LEFT(RIGHT(H20,14))*8 LEFT(RIGHT(H20,13))*4 LEFT(RIGHT(H20,12))*2 LEFT(RIGHT(H20,11))*1 LEFT(RIGHT(H20,10))*6 LEFT(RIGHT(H20,9))*3 LEFT(RIGHT(H20,8))*7 LEFT(RIGHT(H20,7))*9 LEFT(RIGHT(H20,6))*10 LEFT(RIGHT(H20,5))*5 LEFT(RIGHT(H20,4))*8 LEFT(RIGHT(H20,3))*4 LEFT(RIGHT(H20,2))*2),11) 1,1,0,"X",9,8,7,6,5,4,3,2)=LEFT(RIGHT(H20,1))*1,"正确!","出错啦!")),IF(LEN(H20)=15,"老号,请注意!",IF(LEN(H20)=0,"缺号码","位数不对!"))) 验证公式二 =MID("10X98765432",MOD(SUMPRODUCT(MID(H20,ROW(INDIRECT("1:17")),1)*2^(18 -ROW(INDIRECT("1:17")))),11) 1,1)=RIGHT(H20,1) 身份证有15位和18位两种,身份证位数是否正确,我们可以用LEN函数判断。但身份证上的日期是否合法:月份是否在1-12之间,日期是否在1-31之间,并且2月份只有28或29天,其他月份30或31天,都不能超过范围。另外一般规定6岁以上才可以办理身份证,也就是年份也有一个超范围的可能性。综合起来看,有三类错误:“身份证位数不对”、“月日错误”、“年份错误”。 假定身份证号码在B1单元格,下面的公式可以综合判断以上三种错误: 验证公式三 =IF(OR(LEN(B1)=18,LEN(B1)=15),IF(LEN(B1)=18,IF(OR(MONTH(DATE(1*(MID(B1,7 ,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,11,2)),DAY(DATE(1*(M ID(B1,7,4)),1*(MID(B1,11,2)),1*(MID(B1,13,2))))<>1*(MID(B1,13,2))),"月日错误",""),IF(LEN(B1)=15,IF(OR(MONTH(DATE(1*(MID(B1,7,2)) 1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,9,2)),DAY(DATE(1*(MID (B1,7,2)) 1900,1*(MID(B1,9,2)),1*(MID(B1,11,2))))<>1*(MID(B1,11,2))),"月

相关文档
相关文档 最新文档