祁志剛
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的學習提高自己的工作效率。