1. 程式人生 > >Excel根據身份證號提取省份

Excel根據身份證號提取省份

身份證號碼各位的含義:

1-2位省、自治區、直轄市程式碼; 3-4位地級市、盟、自治州程式碼;
5-6位縣、縣級市、區程式碼; 7-14位出生年月日,比如19670401代表1967年4月1日;
15-17位為順序號,其中17位(倒數第二位)男為單數,女為雙數;
18位為校驗碼,0-9和X。作為尾號的校驗碼,是由把前十七位數字帶入統一的公式計算出來的,計算的結果是0-10,如果某人的尾號是0-9,都不會出現X,但如果尾號是10,那麼就得用X來代替,因為如果用10做尾號,那麼此人的身份證就變成了19位。X是羅馬數字的10,用X來代替10。

省份(包括直轄市、自治區)所對應的號碼:

 11      北京市     12      天津市     13      河北省      14      山西省                15      內蒙古自治區

 21      遼寧省     22      吉林省     23      黑龍江省    

 31      上海市     32      江蘇省     33      浙江省      34      安徽省                 35      福建省                   36      江西省     37      山東省  

 41      河南省     42      湖北省     43      湖南省      44      廣東省                 45      廣西壯族自治區     46      海南省    

 50      重慶市     51      四川省     52      貴州省      53      雲南省                 54      西藏自治區 

 61      陝西省     62      甘肅省     63      青海省     64      寧夏回族自治區    65      新疆維吾爾自治區     

 71      臺灣省   

 81      香港特別行政區    

 91      澳門特別行政區    

根據身份證號提取省份

     首先,建立包含省份程式碼和省份名稱的兩個輔助列。

    然後,提取身份證號表示省份的前兩名程式碼並轉換為數值型資料作為lookup或者vlookup公式函式的搜尋值,並將輔助列設定為被搜尋列和結果取值列。

搜尋值與搜尋列的值相匹配時,返回搜尋列同行的結果列的值。

方法:

填寫好C欄中的身份證號後,在D欄中輸入公式=VLOOKUP(--MID(C2,1,2),A$2:B35,2,0)即可。

VLookup公式

  • 功能:在表格陣列的首列查詢值,並由此返回表格陣列當前行中其他列的值。

  • 公式格式:VLookup(Arg1, Arg2, Arg3, Arg4)

      Arg1:要搜尋的值,可以是值或引用。如果 該值 小於被搜尋區域或陣列的第一列中的最小值,則 VLOOKUP 將返回錯誤值 #N/A。

     Arg2:兩列或更多列資料。可以使用對區域或區域名稱的引用。table_array 第一列中的值是由 lookup_value
搜尋的值。這些值可以是文字、數字或邏輯值。不區分大小寫。

如:搜尋的值在B1:B23區域,搜尋匹配後想取的值在F1:F23裡,可以設定被搜尋區域為B1:F23。

    table_array 第一列中的值必須以升序排序;否則 VLOOKUP 可能無法給出正確的值。

    Arg3:Col_index_num - table_array 中待返回的匹配值的列號。col_index_num 為 1 時,返回 table_array
第一列中的值;col_index_num 為 2 時,返回 table_array 第二列中的值,依此類推。

     如在Arg2中所舉事例,Arg3應設定為5(即被搜尋區域B為第1列)。

 Arg4:一個邏輯值,指定希望 VLOOKUP 查詢精確的匹配值還是近似匹配值。

 Lookup公式

  • 功能:從單行或單列區域或者從一個數組返回值。

  • 公式格式:Lookup(Arg1, Arg2, Arg3)

     Arg1:Lookup_value - LOOKUP 在第一個向量中搜索的值。Lookup_value 可以是數字、文字、邏輯值、名稱或對值的引用。

    Arg2:Lookup_vector 或陣列 - 在向量形式中,為只包含一行或一列的區域。lookup_vector
中的值可以是文字、數字或邏輯值。在陣列形式中,為包含要與 lookup_value 進行比較的文字、數字或邏輯值的單元格區域。如:B1:B23

陣列中的值必須以升序順序放置。

       Arg3:Result_vector - 只用於向量形式。只包含一行或一列的區域。它必須與 lookup_vector 大小相同。如Arg2採用引用"B1:B23",Arg3也必須為1列23行的區域。

注意:

Arg1與Arg2的數值型別應該一致。如省份程式碼輔助列建立時單元格格式為預設的常規,要清楚該值的型別實質為數值型,在從身份證中提取前兩位時也應轉換為數值型,否則無法找到匹配的值(為避免身份證號碼自動以科學記數法儲存,一般採用文字格式,即設定單元格格式為文字或在輸入身份證號時先輸入一個英文的單引號')。