在之前的文章《Excel案例分享:5個只靠「拖曳」就實現的高效技巧》中,我們學習了5個Excel表格只靠「拖曳」就實現的高效技巧。而今天我們來聊聊Excel檢驗身分證號碼真假的函數公式,快來看看!
說起假疫苗、毒奶粉這些駭人聽聞的事情,真的是憤怒加無奈,對於這類事情,作為普通人的我們,只能希望有關部門能夠加大管理檢查力度,杜絕再次發生這樣的惡性事件。同時對於自己的工作也要更加細心,在許多容易出現錯誤的環節反覆核查,避免產生一些不良的後果,例如員工檔案中的身分證號碼就是一個非常容易發生問題的重災區!
今天我們就來跟大家分享一個核查身分證號碼是否有錯誤的公式。
一般來說,身分證號碼會出現兩類錯誤,長度錯誤和內容錯誤。
出現錯誤的原因大多都輸入過程中發生的,對於長度錯誤來說,目前都是18位的號碼,如果長度出現錯誤,比較容易發現,但是如果其中的某一個數字出現錯誤,那就非常難以發現,以後就有可能造成一些嚴重的後果,因此,今天重點就是核查內容的正確性。
一、身分證號組成原則
#首先需要了解一點關於身分證號碼的編碼規則:
#18位身分證號碼組成:ddddddyyyymmddxxsp共18位,其中:1-6位是地區編碼,7-14為出生日期,15-17這三位是性別代碼,最後一位是根據前面的17個數字得到的校驗位。
校驗位的計算規則比較複雜:
(1)前十七位數字本體碼加權求和公式
S = Sum (Ai * Wi), i = 0, ... , 16 ,先對前17位數字的權求和
Ai:表示第i位置上的身份證號碼數字值
Wi:表示第i位置上的加權因子
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: 0 1 2 3 4 5 6 7 8 9 10
校驗碼: 1 0 X 9 8 7 6 5 4 3 2
要檢驗一個身分證號碼是否有誤,原理就是依照這個規則計算出校驗碼,再與最後一位數字去比較,如果不一致就是有問題了。對於這個規則理解起來還是比較費力的,我們舉個例子來看看:
1、將前面的身分證號碼17位數分別乘以不同的係數。從第一位到第十七位的係數分別為:
7-9-10-5-8-4-2-1-6-3-7-9-10-5-8- 4-2。
2、將這17位元數字和係數相乘的結果相加。
3、用加出來和除以11,看餘數是多少?
4、餘數只可能有0-1-2-3-4-5-6-7-8-9-10這11個數字。其分別對應的最後一位身分證的號碼為1-0-X -9-8-7-6-5-4-3-2。
5、透過校驗碼比較得知如果餘數是3,就會在身分證的第18位數字上出現的是9。如果對應的數字是10,則身分證的最後一位號碼就是羅馬數字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所得的結果是189/11=17----2 ,也就是說其餘數是2。最後透過對應規則就可以知道餘數2對應的檢驗碼是X,所以,可以判定這是一個正確的身分證號碼。
二、Excel檢驗身分證號碼真假
#原理明白了,現在的問題就是如何將這個計算過程用Excel的公式來表示出來,在這裡將公式分享給大家:
=IF(RIGHT(A2)=MID("10X98765432",MOD(SUM(MID(A2,ROW(INDIRECT("1: 17")),1)*2^(18-ROW(INDIRECT("1:17")))),11) 1,1),"真","假")
#注意這是個陣列公式,輸入或貼上公式後,需要同時按住Ctrl和shift鍵再回車。
公式看起來很複雜,使用的時候只需要把兩個A2修改為自己表格中身分證號對應的位置。
簡單來說一下公式的想法吧,核心部分就是
MID("10X98765432",MOD(SUM(MID(A2,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17") ))),11) 1,1)
這一串,作用是將前面的17位數字依照校驗碼的規則計算出來,再與RIGHT(A2)做比較,RIGHT (A2)的作用就是從A2中提取最右邊的一位出來,根據比較結果用if函數來判斷。
我們可以再用這個公式來檢驗一下文章開頭圖片中的身分證號碼是否正確:
結果是假。
不妨用這個公式去檢驗一下你的表格中是否有錯誤的身份證號碼吧,對於判定為錯誤的號碼及時進行更正,將問題扼殺在萌芽階段!
相關學習推薦:excel教學
以上是Excel案例分享:利用函數公式檢驗身分證號碼的真假的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Google主張Countif:綜合指南 本指南探討了Google表中的多功能Countif函數,展示了其超出簡單單元格計數的應用程序。 我們將介紹從精確和部分比賽到Han的各種情況

本教程提供了共享Excel工作簿,涵蓋各種方法,訪問控制和衝突解決方案的綜合指南。 現代Excel版本(2010年,2013年,2016年及以後)簡化了協作編輯,消除了M的需求

本教程探討了將.xls文件轉換為.jpg映像的各種方法,包括內置的Windows工具和免費的在線轉換器。 需要創建演示文稿,安全共享電子表格數據或設計文檔嗎?轉換喲

本教程闡明了Excel名稱的功能,並演示瞭如何定義單元格,範圍,常數或公式的名稱。 它還涵蓋編輯,過濾和刪除定義的名稱。 Excel名稱雖然非常有用,但通常是氾濫的

本教程闡明了平均值的標準偏差和標準誤差之間的區別,指導您掌握標準偏差計算的最佳Excel函數。 在描述性統計中,平均值和標準偏差為interinsi

該Excel教程演示瞭如何計算正方根和n根。 找到平方根是常見的數學操作,Excel提供了幾種方法。 計算Excel中正方根的方法: 使用SQRT函數:

解鎖Google表的力量:初學者指南 本教程介紹了Google Sheets的基礎,這是MS Excel的強大而多才多藝的替代品。 了解如何輕鬆管理電子表格,利用關鍵功能並協作


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!