祁志刚
Excel自定义函数处理身份证号码
祁志刚
Excel的功能相当强大,在实际工作中的应用也非常广泛,但是有些问题用Excel本身提供的功能并不能完全解决。
VBA的全称是Visual Basic for Application,它存在于Office的所有组件中,Word,Excel,Powerpoint,Access中都可以使用VBA,用VBA编写的代码可以扩充Office应用程序的功能,比如可以使任务自动化,编写自定义函数等。
用Excel处理数据时,可能会遇到各种各样的问题,有些问题可以用函数来解决,但是有些问题用函数难以解决或无法解决。这时我们可以使用VBA,VBA能够扩充Excel的功能,把复杂的问题简单化,并且它的执行效率远远高于数组函数,在实际工作中有着非常广泛的应用。
1.身份证号码中包含的信息
从左至右,第1~2位为省级代码,第3~4位为地市代码,第5~6位为县区代码,第7~10位为出生年份,第11~12位为出生月份,第13~14位为出生日期,第15~17位为顺序码,表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性,第18位为作为尾号的校验码。根据《中华人民共和国国家标准GB 11643-1999》中有关公民身份号码的规定,校验码是根据前面17位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的。
以某一身份证号码为例(见表1):
[1] 身份证号码校验公式[EB/OL].http://wenku.baidu.com/view/ e554382e453610661ed9f472.html.
2011-11-26
祁志刚,大专,中教一级。
河北省迁安市彭店子乡中心学校。
表1
13 02 83 1999 06 12 002 8省份代码 地市代码县区代码出生年份出生月份出生日期 顺序码 校验码
'该函数功能:根据身份证号码,计算出生年月日.
'该函数功能:根据身份证号码,计算性别.
如图1所示。
图1
3.在Excel中使用自定义函数
函数编写成功后就可以在Excel中使用了,自定义函数的使用方法与Excel自带函数相同(如图2所示):
图2
应用实例如图3所示:
图3
笔者长期从事数据处理工作,希望大家能够通过对VBA的学习提高自己的工作效率。