ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 宏业教育

[原创] 庖丁解牛:学习自己需要的函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-4-21 10:24 | 显示全部楼层
这样的帖子很不错呀,我也来学习。

TA的精华主题

TA的得分主题

发表于 2010-4-24 00:04 | 显示全部楼层
谢谢分享,慢慢学习.

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-24 09:35 | 显示全部楼层
接下来,应该看看身份证的主角,即身份证编码的验证码了。在这里,我们先做个前凑,先让大家了解一下身份证编码是怎么回事,特别是它的校验码,有没有什么规则,只有先了解了这个,才能清楚身份证校验码公式的作用。

一、身份证号码执行标准:18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》。  
  GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称“社会保障号码”更名为“公民身份号码”,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。  
  二、编码规则:公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码,可以用字母表示如为ABCDEFYYYYMMDDXXXR。其含义如下:  
  1. 地址码(ABCDEF):表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。  
  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:市辖区、郊区、郊县、县级市代码  
    如果EF=00,指代这个城市,不特定区县;对于非直辖市,如EF=01,指代市辖区(任意一个区),02开始指代特定的区。  

          其中:  
          E=0代表市辖区,  
          E=1代表郊区,  
          E=2代表郊县,  
          E=8代表县级市。  
      对于直辖市,从01开始就依次排区,没有市区和郊区的代码区分。:
有关更详细的资料见附录。
四、生日期码(YYYYMMDD)表示编码对象出生的年、月、日,其中年份用四位数字表示,年、月、日之间不用分隔符。例如:1981年05月11日就用19810511表示。
五、顺序码(XXX)(身份证第十五位到十七位)是县、区级政府所辖派出所的分配码,每个派出所分配码为10个连续号码,例如“000-009”或“060-069”,其中单数为男性分配码,双数为女性分配码,如遇同年同月同日有两人以上时顺延第二、第三、第四、第五个分配码。如:007的就是个男生,而且和他同年月日生的男生至少有两个,他们的后四位是001*和003*。分配顺序码中“999、998、997、996”四个顺序号分别为男女性百岁以上老人专用的特定编号。
六、关于校验码
校验码是通过一系列数学计算得出来的,具体校验的计算方式如下:  
  1. 对前17位数字本体码加权求和  
  公式为:S = Sum(Ai * Wi), i = 0, ... , 16  
  其中Ai表示第i位置上的身份证号码数字值,Wi表示第i位置上的加权因子,其各位对应的值依次为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2  
    通俗解释:身份证第一位数字X7+第二位X9+第三位X10+第四位X5+第五位X5+第六位X8+第七位X4+第八位X1+第九位X6+第十位X3+十一位X7+十二位X9+十三位X10+十四位X5+十五位X8+十六位X4+十七位X2;计算出总和(用S)表示。
  2. 以11对计算结果取模  
  Y = mod(S, 11)  
    通俗解释:用S除以11,看最后的余数。如果除尽,为0;余数为1,则计为1;最大余数为10;全部数字为0-10共11个数字。(用Y表示)。
  3. 根据模的值得到对应的校验码  
  对应关系为:  
   Y值:   0 1 2 3 4 5 6 7 8 9 10  
  校验码: 1 0 X 9 8 7 6 5 4 3 2  
    通俗解释:余数为0,则校验码为1;依次类推:余数为1,则校验码对应0;以下:2--X;3--9;4--8;5--7;6--6;7--5;8--4;9-3;10-2。
    如果校验码不符合这个规则,则肯定是假号码。
    关于18位身份证号码尾数是“X”的一种解释:因为按照上面的规则,校验码有11个,而不是10个,所以不能用0-9表示。所以如果尾号是10,那么就得用X来代替,因为如果用10做尾号,那么此人的身份证就变成了19位,而19位的号码违反了国家标准,并且我国的计算机应用系统也不承认19位的身份证号码。Ⅹ是罗马数字的10,用X来代替10,可以保证公民的身份证符合国家标准。  
根据〖中华人民共和国国家标准 GB 11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。




顺便传一个俺刚才做的身份证验证系统作为参考,帮助理解

[ 本帖最后由 宏业教育 于 2010-4-24 12:47 编辑 ]

身份证系统.rar

2.76 KB, 下载次数: 152

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-4-30 21:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-5-10 13:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-5-12 16:05 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-5-14 13:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-6-17 09:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-6-25 23:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-7-3 21:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
资料好多呀!学习了!
谢谢楼主!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-8 01:59 , Processed in 0.024690 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表