二維碼 購物車
部落窩在線教育歡迎您!

Excel檢驗身份證號碼真假的函數(shù)公式

?

作者:老菜鳥來源:部落窩教育發(fā)布時間:2018-07-25 14:02:14點(diǎn)擊:28019

分享到:
0
收藏    收藏人氣:0人
版權(quán)說明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

小編有話說:小編還是第一次了解到身份證的編碼規(guī)則呢,原來并不復(fù)雜,根據(jù)這個編碼規(guī)則,我們自己也可以辨別身份證的真假,太牛逼了!不過說真的,要是公司員工的身份證號碼寫錯了,而我們還沒發(fā)現(xiàn),真的會給公司帶來很大的麻煩,所以趕緊收藏這篇教程啦!


說起假疫苗、毒奶粉這些駭人聽聞的事情,真的是憤怒加無奈,對于這類事情,作為普通人的我們,只能希望有關(guān)部門能夠加大管理檢查力度,杜絕再次發(fā)生這樣的惡性事件。同時對于自己的工作也要更加細(xì)心,在很多容易出現(xiàn)錯誤的環(huán)節(jié)反復(fù)核查,避免產(chǎn)生一些不良的后果,比如員工檔案中的身份證號碼就是一個非常容易發(fā)生問題的重災(zāi)區(qū)!

今天我們就來和大家分享一個核查身份證號碼是否有錯誤的公式。

一般來說,身份證號碼會出現(xiàn)兩類錯誤,長度錯誤和內(nèi)容錯誤。

出現(xiàn)錯誤的原因大多數(shù)都輸入過程中發(fā)生的,對于長度錯誤來說,目前都是18位的號碼,如果長度出現(xiàn)錯誤,比較容易發(fā)現(xiàn),但是如果其中的某一個數(shù)字出現(xiàn)錯誤,那就非常難以發(fā)現(xiàn),以后就有可能會造成一些嚴(yán)重的后果,因此,今天重點(diǎn)就是核查內(nèi)容的正確性。


一、身份證號組成原理

首先需要了解一點(diǎn)關(guān)于身份證號碼的編碼規(guī)則:

Excel檢驗身份證號碼真假

18位身份證號碼組成:ddddddyyyymmddxxsp18位,其中:1-6位是地區(qū)編碼,7-14為出生日期,15-17這三位是性別代碼,最后一位是根據(jù)前面的17個數(shù)字得到的校驗位。

校驗位的計算規(guī)則比較復(fù)雜:

1)前十七位數(shù)字本體碼加權(quán)求和公式

S = Sum(Ai * Wi), i = 0, ... , 16 ,先對前17位數(shù)字的權(quán)求和

Ai:表示第i位置上的身份證號碼數(shù)字值

Wi:表示第i位置上的加權(quán)因子

Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

2)計算模

Y = mod(S, 11)

3)通過模得到對應(yīng)的校驗碼

Y: 0 1 2 3 4 5 6 7 8 9 10

校驗碼: 1 0 X 9 8 7 6 5 4 3 2

要檢驗一個身份證號碼是否有誤,原理就是按照這個規(guī)則計算出校驗碼,再與最后一位數(shù)字去比較,如果不一致就是有問題了。對于這個規(guī)則理解起來還是比較費(fèi)勁的,我們舉個例子來看看:

1、將前面的身份證號碼17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為:

7910584216379105842。

2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加。

3、用加出來和除以11,看余數(shù)是多少?

4、余數(shù)只可能有01234567891011個數(shù)字。其分別對應(yīng)的最后一位身份證的號碼為10X 98765432。

5、通過校驗碼對比得知如果余數(shù)是3,就會在身份證的第18位數(shù)字上出現(xiàn)的是9。如果對應(yīng)的數(shù)字是10,身份證的最后一位號碼就是羅馬數(shù)字2

例如:某男性的身份證號碼為【53010219200508011x】, 我們看看這個身份證是不是合法的身份證。

首先我們得出前17位的乘積和

【(5*7)+(3*9)+(0*10)+(1*5)+(0*8)+(2*4)+(1*2)+(9*1)+(2*6)+(0*3)+(0*7)+(5*9)+(0*10)+(8*5)+(0*8)+(1*4)+(1*2)

189,然后用189除以11得出的結(jié)果是189/11=17----2,也就是說其余數(shù)是2。最后通過對應(yīng)規(guī)則就可以知道余數(shù)2對應(yīng)的檢驗碼是X,所以,可以判定這是一個正確的身份證號碼。


二、Excel檢驗身份證號碼真假

原理明白了,現(xiàn)在的問題就是如何將這個計算過程用Excel的公式來表示出來,在這里將公式分享給大家:

=IF(RIGHT(A2)=MID("10X98765432",MOD(SUM(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1),"","")

注意這是個數(shù)組公式,輸入或者粘貼公式后,需要同時按住Ctrlshift鍵再回車。

Excel檢驗身份證號碼真假教程

公式看上去非常復(fù)雜,使用的時候只需要把兩個A2修改為自己表格中身份證號對應(yīng)的位置即可。

簡單來說一下公式的思路吧,核心部分就是

MID("10X98765432",MOD(SUM(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)

這一串,作用是將前面的17位數(shù)字按照校驗碼的規(guī)則計算出來,再與RIGHT(A2)做比較,RIGHT(A2)的作用就是從A2中提取最右邊的一位出來,根據(jù)比較結(jié)果用if函數(shù)來進(jìn)行判斷。

我們可以再用這個公式來檢驗一下文章開頭圖片中的身份證號碼是否正確:

Excel檢驗身份證號碼真假相關(guān)教程

結(jié)果是假。

不妨用這個公式去檢驗一下你的表格中是否有錯誤的身份證號碼吧,對于判定為錯誤的號碼及時進(jìn)行更正,將問題扼殺在萌芽階段!


如果您因工作所需使用到Excel,不妨關(guān)注部落窩教育的《一周Excel直通車》視頻課或《Excel極速貫通班》直播課系統(tǒng)學(xué)習(xí)。

如果您想要隨時隨地學(xué)習(xí)excel,掃下方二維碼,可關(guān)注公眾號,每日為您推送優(yōu)質(zhì)excel教程:

Excel教程微信公眾號

Excel教程 相關(guān)推薦:

        拿給別人看的圖表,你要這樣做