表格裡如何檢查身份證號是否正確(檢查身份證號碼是否正確的函式)
身份證號碼的驗證在網路上有許多公式,往往比較複雜,今天給大家介紹我經常用到的一個驗證公式,非常簡單,希望對大家有所幫助,也希望有網友有更為簡潔的方法,歡迎留言探討。
在日常excel使用中,最常用,也是最頭痛的就是身份證號碼的操作,我國身份證採用18位的數字來標識身份資訊,容易被excel當做長數字處理,直接用科學記數法顯示出來,造成資料丟失。另外,身份證號碼中隱藏了許多有用的資訊,有戶籍資訊,出生日期資訊,年齡資訊,性別資訊,校驗資訊等,我們可以通過公示輕鬆提取出來。
另外,由於身份證號碼比較長,在錄入過程中容易出現錯誤,對號碼進行正確性驗證就非常有必要。下面我講一個我經常用的一個校驗公式。
一、有必要先簡單說一下校驗碼的計算步驟。
(1)十七位數字本體碼加權求和公式
S = Sum(Ai * Wi), i = 0, ... , 16 ,先對前17位數字的權求和
Ai:表示第i位置上的身份證號碼數字值(0~9)
Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (表示第i位置上的加權因子)
(2)計算模
Y = mod(S, 11)
(3)根據模,查詢得到對應的校驗碼
Y: 0 1 2 3 4 5 6 7 8 9 10
校驗碼: 1 0 X 9 8 7 6 5 4 3 2
公式如下:
=IF(MID("10X98765432",MOD(SUMPRODUCT((--MID(A1,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1)),{7;9;10;5;8;4;2;1;6;3;7;9;10;5;8;4;2}),11) 1,1)=MID(A1,18,18),"正確","錯誤")
注:公式中紅色“A1”表示身份證號碼所在的單元格。
解釋:這個公式用到if、 mid、mod、sumproduct四個函式,--操作符。
(1)--MID(A1,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1))這個函式表示把A1單元格中的身份證號碼前17位資訊轉換成記憶體陣列,例如身份證號碼為:412901197708151011,轉換後為{4;1;2;9;0;1;1;9;7;7;0;8;1;5;1;0;1},便於下一步計算。操作符“--”表示把字元轉換成數值。
(2)SUMPRODUCT函式表示把兩個陣列進行乘積和。
(3)mod函式表示取模,就是求餘數。將計算出來的數字對11求餘數,出來就是校驗碼,也就是身份證號碼的最後一位。