今天跟大家分享下我們?nèi)绾握_的對身份證號碼查重,這個也是一個學(xué)員遇到的問題,他發(fā)現(xiàn)在利用條件格式標(biāo)記重復(fù)身份證號碼的時候,兩個完全不一樣的身份證號碼也會被標(biāo)記顏色,如下圖所示,還跟我說發(fā)現(xiàn)了一個Excel的bug,這個其實并不是bug,它與Excel的精度有關(guān),下面我們就來了解下有關(guān)的內(nèi)容吧
一、錯誤原因
Excel的精度只有15位數(shù)據(jù),在默認(rèn)情況下(常規(guī)格式)如果我們輸入的數(shù)據(jù)超過了15位,15位之后的數(shù)據(jù)都會被舍去,設(shè)置為0來顯示。且無法恢復(fù)
這個也就是我們在錄入身份證號碼的時候,必須將單元格的格式設(shè)置為文本格式的原因,如果不將格式設(shè)置為文本,身份證號碼的后3位會被舍去,就會被設(shè)置為0來顯示,這個過程是不可逆的,只有重新輸入
當(dāng)我們使用條件格式對數(shù)據(jù)進(jìn)行查重的時候,Excel會自動將文本格式的數(shù)值轉(zhuǎn)換為常規(guī)格式,后面的3個數(shù)字就會被忽略掉,僅僅只會比對身份證號碼前15位的數(shù)據(jù),所以身份證號碼的前15位相同,條件格式就會為其標(biāo)注顏色,這個就是錯誤原因。
那么對于這樣的情況我們應(yīng)該如何解決呢?
二、解決方法
最簡單的方法就是利用countif函數(shù),我們只需要將公式設(shè)置為:=COUNTIF($D$2:$D$10,D2&"*"),然后向下填充即可,結(jié)果大于1的就是重復(fù)數(shù)據(jù)。
跟大家簡單的介紹下這個函數(shù)的計算原理
第一參數(shù):$D$2:$D$10
第二參數(shù):D2&"*"
在這里函數(shù)中關(guān)鍵的是第二參數(shù)
&:是一個鏈接符號,它結(jié)果的格式一般默認(rèn)是文本格式
*:它是一個通配符,可以表示沒有任何字符,也可以表示有無窮多個字符,在這里它就表示沒有字符
使用鏈接符號將身份證與星號連接后,身份證號碼就會保持文本格式代入公式中計算,這樣的話就可以得到正確的結(jié)果了
三、輔助列
如果解決的上面的方法還是比較繁瑣,跟大家分享一個更加簡單的方法,不過需要設(shè)置一個輔助列。
首先我們使用鏈接符號為身份證號碼的后面連接一個相同的漢字,比如在這里連接一個我字,只需要將函數(shù)設(shè)置為:=C2&"我"向下填充公式即可
最后我們選擇數(shù)據(jù)區(qū)域,使用條件格式中的【突出顯示重復(fù)值】即可,可以看到這個時候數(shù)據(jù)并沒有被標(biāo)記顏色
這么做的原因是因為,我們在身份證號碼中鏈接了一個文本,因為有文本存在,單元格的格式是會一直保持為文本格式,這樣的的話就能得到正確的結(jié)果了
以上就是今天分享的全部內(nèi)容,關(guān)鍵是與Excel的精度有關(guān),如果大家覺得麻煩,就選擇制作一個輔助列來查重,
我是Excel從零到一,關(guān)注我,持續(xù)分享更多Excel技巧