前幾天跟大家分享了如何驗證身份證号碼的對錯,有粉絲問到:為什麼我們的身份證号碼是X結尾的?我是不是特殊人群?
身份證号碼之所以會顯示為X,是與校驗碼的生成規則有關, 跟大家簡單的介紹下,身份證号碼第18位,也就是校驗碼的編寫規則吧!看完你就懂為什麼會顯示為X了
一、身份證号碼的構成現在的身份證大多都是18位的,15位的基本已經見不到了,我們就以18位的身份證号碼為例,來簡單的回顧下身份證号碼的編寫規則
地址代碼(1-6位)
1-2位是省份代碼,3-4位是城市代碼,5-6位是區間代碼,網上很多地址對照表的,感興趣的可以搜下
生日代碼(7-14位)
7-10位是年份,11-12位是月份,13-14位是天數,這個相信很多人都知道,之前是講過的
順序碼(15-17位)
15-16位,當地派出所給的主要是為了避免同年同月出生重複的情況,其中第17位是性别代碼,奇數會分給男性,偶數會分給女性
校驗碼(18位)
顧名思義他的作用就是用來檢驗身份證号碼是否正确的,是根據前面十七位數字碼,按照特定的計算得出。下面跟大家簡單地說下計算的規則,感興趣的可以具體搜下
二、計算規則1.計算餘數
身份證号碼的第1到17位幾乎可以說是固定的,而根據規則,1到17位,還分别對應不同的系數,1到17位的系數分别為:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2
首先需要将每個位數的數字與對應的系數相稱得到一個乘積,然後再将乘積求和,這個我們可以使用函數SUMPRODUCT,公式如下,結果為323。
=SUMPRODUCT(B2:B18,C2:C18)
随後需要将323除以11來得到一個餘數,這個餘數我們可以使用MOD函數,它的作用就是求餘數,結果為4
公式=MOD(D19,11)
2.計算校驗碼
求出餘數後,還有一個餘數校驗碼的對照表,我放在下面了,剛才求得餘數為4,根據對照表可知身份證最後一位是8,如果最後一位不是8,那麼它就是錯誤的号碼
因為除以11,所以說是有10個餘數的,10個餘數就會對應10個校驗碼,如果校驗碼寫10,那麼身份證的長度就會超過18位。所以為了保證身份證号碼長度的統一,就使用X來代替數字10,X其實是羅馬數字10的意思。
三、禁止錄入錯誤的号碼
利用校驗碼,我們可以在Excel中設置禁止錄入錯誤的身份證号碼
首先在旁邊粘貼公式,會顯示一列錯誤值,不用擔心,随後選擇數據區域,為數據區域添加【數據驗證】,将【允許】設置為自定義,直接輸入=B2,就是第一個公式,确定即可
公式:=IF(RIGHT(A2,1)="X","X",--RIGHT(A2,1))=VLOOKUP(MOD(SUMPRODUCT(--MID(A2,{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),{0,1;1,0;2,"X";3,9;4,8;5,7;6,6;7,5;8,4;9,3;10,2},2,0)
以上就是今天的全部内容啦,身份證号碼結尾位X其實并沒有什麼特殊的,但是在Excel中,我特别喜歡身份證号碼結尾是X的人,有人知道為什麼嗎?
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!