最近連續(xù)有兩個同學(xué)提問,關(guān)于countif統(tǒng)計身份證號碼結(jié)果出錯的問題。如下面的示例,在B列計算A列身份證的出現(xiàn)次數(shù),但公式計算結(jié)果卻有誤,象A2的身份證共出現(xiàn)2次,計算結(jié)果卻是8.如上圖所示。
分析:
公式=COUNTIF(A:A,A2)中,就countif函數(shù)的參數(shù)設(shè)置是沒有任何問題的,結(jié)果出錯的原因我們一點點道來:
在excel中我們輸入超過15位的數(shù)字時,后面的數(shù)字會自動變成0。這是因為excel只能精確到的15位數(shù),15位后的數(shù)會按0計算。
本例中身份證號碼前15位都相同,15~18位的數(shù)字excel全按0計算,所以在excel眼里前15位相同的數(shù)字就是相同的,無論15位后的是否相同。countif計算錯誤是必然的了。
解決方案:
excel不認(rèn)識數(shù)字的15位后數(shù)字,但如果數(shù)字被當(dāng)成文本格式,excel就能識別15位后的數(shù)字。有同學(xué)會說,這里本來就是文本格式,要不然也無法輸入完整的身份證號。excel有點精明過頭,在用公式計算時,文本性的數(shù)字有時也會當(dāng)數(shù)值型來對待,本例中就是。那么怎么讓excel確認(rèn)是字符串類型呢?
*(星號)在excel公式里是通配符,“A*”表示以A開頭后面跟任意長度的字符串。只有文本格式才適用于通配符。所以如果我們讓身份證號連接*號,就可以明確的傳達(dá)給countif信息,你要統(tǒng)計的是文本格式,不是數(shù)值。
根據(jù)以上分析,我們可以把公式設(shè)置為
=COUNTIF(A:A,A2&'*')
正確的計算結(jié)果如下圖所示。
還有同學(xué)問如何對比兩個表的身份證號碼,在兩個表中各設(shè)置COUNTIF函數(shù)公式,統(tǒng)計本表的身份證號碼在另一個表中的個數(shù),如果大于0,說明在另一個表中存在。
如當(dāng)前表是sheet1,查找在sheet2表A列中是否存在本表A列的身份證號碼。
=COUNTIF(Sheet2!A:A,A2&'*')
蘭色說: 同學(xué)們平時工作有什么excel疑難問題可以回復(fù)提問,其中有代表性的問題將作為示例講解共享給全體同學(xué)們。