性別提取
籍貫提取
出生年月提取
我們的居民身份證作為我們國家每個人唯一的身份標識,其設計十分巧妙,18位的身份證號包含了許多資訊,並且為了防止身份證錄入錯誤,還提供了一種可靠的校驗方式。
順帶介紹一下我們身份證的構成。
我們以500225199203026858為例
號碼含義
500225
行政區域**
19920302
出生年月
685同一地區同一天出生的順序碼(奇數男;偶數女)
8校驗碼
身份證號碼位數 w
iw_i
wi123
4567
891011
1213
1415
1617
18係數 a
ia_i
ai7910
5842
1637
91058
42校驗碼計算公式:餘數=
∑117(
wi∗a
i)%11
餘數=\sum_^(w_i*a_i)\%11
餘數=∑11
7(w
i∗a
i)%
11根據餘數區查詢對應得校驗碼表餘數0
1234
5678
910校驗碼10x
9876
5432
以上就是身份證的校驗。
我們需要在excel中實現這個校驗,在輸入身份證號後能夠去校驗並且能夠進行提示
如圖所示:
在身份證驗證結果中輸入公式:
=if(mid("10x98765432",(mod(sumproduct(mid(a14,row(indirect("1:17")),1)*
),11)+1),1)=right(a14),true,false)
首先解釋一下幾個關鍵的函式:
indirect(引用區域,引用格式):
mid(text, start_num, num_chars):
row(refrence):
sumproduct(array1, [array2], [array3], …):
mod(a,b)
-a/b求餘
if函式之流不必解釋了,進行一頓操作之後,將計算出來的校驗碼與身份證號中的最後一位right(身份證號)進行相等判斷,即可得出身份證是否爭取輸入身份證號。
身份號中的性別是順序碼的奇偶性進行判斷的,奇數分配給男性,偶數分配給女性,於是,只需要提取第17位號碼,進行2的求餘,若為1,則為男性,反之,則為女性。
上**:
=if(mod(mid(a10,17,1),2),"男","女")
=vlookup(mid(a14,1,6),行政區域表!a:b,2,true)
出生年月提取就很好理解了,直接利用date函式,分別提取年/月/日進行提取。 身份證號碼校驗
中國居民身份證號碼編碼規則 中國居民身份證校驗碼演算法 都包含 author liuwei date 2020 11 19 身份證校驗工具 public class idnumutil 定義判別使用者身份證號的正規表示式 15位或者18位,最後一位可以為字母 string regularexpres...
Oracle 身份證號碼校驗
今天來了身份證校驗的需求,想在oracle中校驗後將錯誤資料查詢出來。於是我在網上查到了身份證校驗的oracle函式。但是發現一些正確的身份證號也未校驗通過!後來經過千辛萬苦的努力終於發現了,網上給的函式中判斷是否是閏年的 substrb 函式應該從第7為開始擷取,而不是第6位!還有要注意最後一位校...
JS校驗身份證號碼
function isidcardno num d 0 9 x test num 驗證前2位,城市符合 var acity if acity parseint num.substr 0,2 null alert 城市 acity parseint num.substr 0,2 下面分別分析出生日期和...