Excel中身份證號碼驗證,那些不得不說的事


點贊再看,養成習慣;流水不腐,戶樞不蠹。

微信搜索【亦心Excel】關注這個不一樣的自媒體人。

本文 GitHub https://github.com/hugogoos/Excel 已收錄,包含Excel系統學習指南系列文章,以及各種Excel資料。

大家在處理員工信息的時候,應該都有處理過身份證號碼吧。身份證號碼里包含了很多信息,包括出生地、年齡、性別、生日、生肖、星座等等。今天我們不說如何提取這些信息,說一個更重要的身份證號碼錄入,畢竟有了數據才能提取,而且錄入過程也有很多問題,讓我們一起來看看如何解決這些問題。

 

1、顯示問題

我們以現在主流的18位身份證號碼為例,當我們在單元格中隨便輸入一個18位數字比如:123456789012345678。

 

我們發現身份證號碼顯示變成科學計數展示了,而且當我們再次選中身份證號碼會發現最后3位數字都變成了0。這是因為Excel中數字的精度是15位,當數字超過15位時會用0代替。

處理方法也很簡單,這里給兩個小方法:①輸入法切換至英文狀態下,先輸入單引號「’」再接着輸入身份證號碼即可;②右擊單元格,設置單元格格式為文本格式即可。

 

2、長度驗證

身份證號碼18位數字,錄入多了難免會眼花繚亂,一不小心就會多一位或少一位。

「數據驗證」可以很好的解決這種情況,選中單元格區域,點擊「數據」選項卡下「數據工具」命令組中「數據驗證」,調出數據驗證對話框,然后點擊「設置」選項卡,允許選擇「文本長度」,數據選擇「等於」,長度選擇「18」,最后點擊確定即可。

 

演示如下:

 

3、唯一性驗證

當位數驗證完以后,又會有一個問題:重復輸入。

選中不能重復輸入單元格區域;選擇「數據」→「數據工具」→「數據驗證」調出驗證對話框;驗證對話框中「設置」選項卡下「驗證條件」中「允許」為"自定義",公式為「=COUNTIF(B$5:B$7,B5&"*")=1」;

 

4、合法性驗證

我們知道身份證號碼是有一套計算規則的,下面我們就來一步一步講解計算規則。

①首先身份證號碼前17位數字各自都有其對應的系數,然后把17位數字分別和各自的系數相乘並把結果相加;

 

②把第一步計算的結果除以11並得到余數。而每一個余數都有其對應身份證號碼第18位應該是什么數字;

 

③我們把上面計算出來的身份證號碼尾數和實際的對比一下即可得出這個身份證號碼是否合法。

我們舉個例子,比如身份證號碼為:321324199005161058。

①首先計算前17位數與其系數乘積之和:3*7+2*9+1*10+3*5+2*8+4*4+1*2+9*1+9*6+0*3+0*7+5*9+1*10+6*5+1*8+0*4+5*2=264;

②然后計算第一步結果除以11的余數:264/11余數為0,其對應的第18位數字應該是1;

③計算出來的數字和我們實際數字不匹配,因此這個身份證號碼不合法。

其實知道了計算規則以后,我們可以用很多種方式來驗證身份證的合法性,下面我們提供一個公式:「=IF(MID("10X98765432",MOD(SUMPRODUCT(MID(B5,ROW(INDIRECT("1:17")),1)*2^(18-ROW(INDIRECT("1:17")))),11)+1,1)=RIGHT(B5),"合法","不合法")」,只需要把B5單元格換成自己需要的單元格即可。

下面我們來看看演示效果:

 

當然還有很多其他公式或方法驗證身份證號碼合法性,大家有興趣的可以自己去嘗試嘗試。

我們依次解決了顯示問題、長度問題、重復問題、合法問題。但是其實整個過程還不完美,比如我們還可以對前6位所在地驗證,是不是一個合法的所在地;對8位日期驗證,是不是一個正確的日期。這樣才能最大限度的保證身份證的正確性。后面我會用VBA寫一個我自認為比較完美的自定義函數來驗證身份證號碼,到時候分享出來,有興趣的可以一起討論哦。

今天的分享到這里就結束了,但是學習的道路才剛剛開始,希望我們可以在學習的道路上不斷地前進,堅持不懈。

如果你有感興趣的功能,可以告訴小編哦,小編會為你寫一篇相應的文章。當然是先到先寫哈,我會列一個計划表,盡量滿足大家的需求,所以如果下一篇不是你要的文章,請不要着急,可能就在下下篇。記得告訴小編你想學習的功能哦。

文章持續更新,可以微信搜索「 亦心Excel 」第一時間閱讀,本文 GitHub https://github.com/hugogoos/Excel 已經收錄,包含Excel系統學習指南系列文章,歡迎Star。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM