早期的身份證號碼為15位數字,現在使用的身份證號碼為18位數字,它們的含義如下:
(1)15位:1-6位為地區代碼,7-8位為出生年份(2位),9-10位為出生月份,11-12位為出生日期,第13-15位為順序號,這3位奇數為男,偶數為女。
(2)18位:1-6位為地區代碼,7-10位為出生年份(4位),11-12位為出生月份,13-14位為出生日期,第15-17位為順序號,同上,第18位為效驗位。
在做員工檔案管理的工作時,有時希望通過身份證號碼,自動提取出各個員工的出生日期、性別、年齡等信息。
現在我們就通過幾個公式,來得到這些信息。
1、出生日期
=IF(LEN(A2)=15,CONCATENATE("19",MID(A2,7,2),"/",MID(A2,9,2),"/",MID(A2,11,2)),CONCATENATE(MID(A2,7,4),"/",MID(A2,11,2),"/",MID(A2,13,2)))
LEN函數是檢測這個身份證號碼的數字位數,然后通過IF判斷函數對15位或18位的情況做出不同處理。
CONCATENATE函數將提取出的分別代表“年”、“月”、“日”的信息,以及分隔符“/”等內容,合并成一個文本字符串。
MID函數的做用是從身份證的某個位置開始,取出若干字符。比如MID(A2,7,2),就是將身份證號碼(放在A2單元格中),從左邊數第七個字符開始,取出2個字符。
2、性別
=IF(LEN(A2)=15,IF(VALUE(RIGHT(A2,3))/2=INT(VALUE(RIGHT(A2,3))/2),"女","男"),IF(VALUE(MID(A2,15,3))/2=INT(VALUE(MID(A2,15,3))/2),"女","男"))
由于代表性別的數字中,偶數為“女”,奇數為“男”,所以在這個公式中用VALUE函數將取出的字符串變成數字,再除以2,看是否能整除,因為奇數是不能整除的。
這里的INT函數是“取整”的意思,把上面除2后的結果用它取整,讓IF函數判斷一下,取整前后的結果是否相同,相同為偶數,不相同為奇數。
公式中的RIGHT函數是從字串的右邊(即字符串最后面)取若干符,注意與MID函數的區別。
3、年齡
=CONCATENATE(DATEDIF(B2,TODAY(),"y"),"年",DATEDIF(B2,TODAY(),"ym"),"個月")
由于我們用上面的公式,將“出生日期”提取到B2單元格,所以這里的公式是通過操作B2單元格的數據來得到年齡的。
函數DATEDIF是計算兩個日期或時間的差值,通過第三個參數來確定所要的結果,比如“y”會得到兩個日期相差的年;“ym”會得到除年外,所余的月數。
TODAY()函數的作用是得到當前系統日期,即電腦上今天的日期。
最終結果見下圖:
如果從網上找到前6位數所代表的地區代碼列表,然后用VLOOKUP函數引用,就可以自動得到各員工的居住城市信息了