- 搜索之道:信息素養與終身學習的新引擎
- 周建芳 何冰
- 2687字
- 2025-03-27 19:03:41
1.1
一個案例:5秒鐘找出8000多個身份證號碼中的錯誤
幾年前,我有一個朋友是做會計培訓的。每年他都要招收8000多名學生,為了方便管理,他要求每個學生提供身份證復印件,并讓員工將身份證上的信息手動錄入Excel表格。這些數據在學生管理、考試報名和頒發合格證書時都會被使用。然而,在手動錄入身份證信息的過程中,錯誤是難以避免的,尤其是身份證號碼輸入錯誤。這導致后續報名考試時準考證和合格證書上的信息都是錯誤的,從而引發了一些學生的投訴和糾紛。
當他找到我尋求幫助時,他已經招收了8000多名學生,也收集了8000多張身份證復印件,并在Excel表格中錄入了8000多行數據(見圖1-1)。他意識到這些數據中肯定存在錯誤,但問題是如何找到并糾正這些錯誤呢?

圖1-1 需要核對的身份證復印件號碼
第一招:逐個核對
我的這位朋友在找我之前,自己還想過一些辦法來解決這個問題,也就是這里要說的第一種方法——逐個檢查身份證號碼的正確性。兩個人一組,其中一個人念身份證復印件中的信息,另一個人在Excel表格中核對數據并做好標記。
這種方法很簡單,但效果很不好。首先是效率低,兩個人一組,一張身份證復印件核對至少需要30秒,1分鐘兩張,1小時120張,1天按8小時工作時間,只能核對960張,8000多張至少需要9個工作日才能核對完成。
另一個更大的問題是,難以完全找出其中的錯誤,校對的質量不高。試想一下,當兩個人全神貫注、認認真真校對了200個身份證號碼,一個錯誤都沒有發現時,注意力就很難繼續高度集中,稍不留神,一個錯誤可能就被放過去了。
第二招:拍照+文字識別
對逐個核對方法的結果不滿意,后來有人給他支招,用文字識別的方法來校對。先拍照,然后用文字識別軟件識別其中的身份證號碼。
由于當時智能手機還不普及,拍照用的是數碼相機,文字識別也很難找到在線版,但免費的文字識別軟件還是比較多的。搜索文字識別軟件(見圖1-2),下載安裝,然后拍照識別。試了兩張,他就放棄了,為什么呢?

圖1-2 搜索文字識別軟件
拍照很慢,更重要的是身份證復印件大多不是很清楚,清楚的又連底紋都被識別出來,文字識別出來的效果很差,錯誤更多。顯然,文字識別這招不靠譜。
第三招:自動朗讀+人工校對
這位朋友在找我之前,還找到了一個解決方案——人工校對,不過不是兩人一組,而是用計算機自動朗讀,再配合人工校對。
網上有不少實現Excel文本朗讀的攻略,查看后搜索相應的插件進行安裝(見圖1-3),設置后使用。原來需要兩個人做的事情,現在一個人就可以完成了,效率提升了一倍。

圖1-3 搜索自動朗讀插件
但這種方法還是有問題,速度雖然快了1倍,但還是需要很長時間,注意力不能長時間保持集中的問題還是沒有解決,難免出錯。
第四招:寫個程序計算比對
有沒有更好的辦法呢?
大家都知道國內的身份證號碼是一個18位的數字和字母組合,它們的排列是有規律的,前6位是地區編號,中間8位是出生年月日,后面4位也有所區別。用“身份證編碼規則”這個關鍵詞在搜索引擎中搜索就得到答案了,具體介紹如圖1-4所示。可以發現身份證號碼的最后一位(第18位)是校驗位,也就是說,身份證號碼的第18位是根據前17位數據用一個固定的公式計算出來的。

圖1-4 身份證號碼中包含的信息
發現這個規則后,寫個程序就好了。將身份證號碼的前17位進行計算后與第18位進行比對,如果不同,則說明該號碼是錯誤的。不要說8000個身份證號碼,就是8萬個,都是瞬間搞定的事。
寫程序,首先要知道第18位是怎樣通過前17位計算出來的,也就是要知道計算公式是什么。繼續搜索,用“身份證校驗公式”之類的關鍵詞百度一下,很容易找到校驗公式。大概意思是:前17位數據分別乘以一個固定的系數,接著對得到的17個結果數據求和,然后用這個結果數據除以11,查看得到的余數,最后通過一個映射表轉換一下就得出第18位數。
試想一下,這種情況下求余數有幾種可能?對,11種,數字0到10,但第18位是一位數字,只能放數字0到9,多出來的那個就是X。
知道解決思路和具體的公式編寫方式后,就可以用對應的軟件來編寫程序了。
第五招:用ExceI編寫校驗公式
編寫程序能高效解決問題,但并不是每個人都掌握了C++、Python等程序編寫語言。不會寫程序,又該怎么辦呢?
可以在Excel中編寫公式啊!這里用IF函數來編寫公式就可以完成了。即使對IF函數不熟悉,也可以通過Excel提供的幫助和網絡中的學習資源來學習和理解它的用法。使用Excel軟件本身提供的幫助信息,只需按照圖1-5進行操作,打開如圖1-6所示的網頁界面,就可以查看IF函數的功能、參數格式、視頻講解,上面還從簡單到復雜舉了5個例子,看了這些,絕對能夠學會。

總之,通過使用Excel編寫校驗公式,我們可以高效地檢查和糾正身份證號碼的錯誤,確保數據的準確性。這種方法不需要具備編程技能,只需要掌握Excel的基本功能即可完成。對于那些不熟悉編程語言的人來說,這是一個簡單而有效的解決方案。
第六招:搜索別人寫好的校驗公式
實際上,用Excel編寫一個校驗身份證號碼的公式還是有點麻煩,先要搞清楚校驗規則,還要學習函數,只用IF函數還不行,還需要用到其他函數和設計函數嵌套,對于不擅長編寫函數的用戶還是不友好。有沒有更簡單的方法呢?互聯網上有沒有別人寫好的校驗公式呢?實際上,當我們感慨如果有一個什么樣的東西就好了時,互聯網上很可能就有這樣的東西。
以“身份證號碼 Excel 校驗公式”為關鍵詞在搜索引擎中搜索,很容易找到一個別人寫好的公式,如圖1-7所示。
本來以為把這個公式復制到單元格,自動填充一下就好了,但做的時候才發現,從網頁上復制的公式存在格式上的錯亂,需要調試,也很麻煩。可以看到圖1-7所示的公式很長,先不說調試,光看懂就需要很長時間。我后來調試這個公式用了二十多分鐘。

圖1-7 身份證號碼Excel校驗公式
有沒有更簡單的方法?
第七招:查找別人寫好的身份證號碼校驗ExceI文件
你都想到找別人寫好的Excel校驗公式了,為什么不一步到位直接找一個別人寫好的身份證號碼校驗Excel文件呢?
我的朋友咨詢我這個事的時候,我大概思考了10秒,在搜狗搜索中輸入“身份證校驗filetype:xls”進行搜索,如圖1-8所示,找到合適的文件下載后,按“Ctrl+C”組合鍵進行復制,然后按“Ctrl+V”組合鍵進行粘貼,前后不到一分鐘,完美解決。從他給我的8000多個身份證號碼中,找出了14個錯誤,而且這8000多個身份證號碼還是已經通過語音朗讀方法校驗過的。

圖1-8 搜索身份證號碼校驗Excel文件
第八招:用ExceI插件5秒搞定
找身份證號碼校驗Excel文件,不到1分鐘解決問題,已經比之前的那些方法快多了。不過這都是10多年之前的方法,如果現在再遇到這種問題,我還有更快的解決方法,只要5秒。
5秒,為什么能這么快?因為,我的Excel安裝了方方格子插件,里面有一個DIY工具箱,其中一個功能就是驗證身份證號碼的合法性。直接選定要驗證的身份證號碼,按步驟操作即可輕松搞定。