Excel表格COUNTIF函數應該很少人會用到,很多小伙伴可能還不知道該怎么用,也有一些小伙伴雖然懂得COUNTIF函數的原理,卻老是計算錯誤,所以也就越來越少用到了。其實COUNTIF函數的計算功能還是很不錯的,下面小編為大家介紹下Excel表格COUNTIF函數的妙用,讓大家重新認識COUNTIF函數。
如圖中所示,在E列使用下面的公式,判斷B列的身份證號碼是否重復。
=IF(COUNTIF($B$2:$B$11,B2)>1,"重復","")
公式中COUNTIF($B$2:$B$11,B2)部分,用來統計$B$2:$B$11數據區域中等于B2單元格的數量。再使用IF函數判斷,如果$B$2:$B$11數據區域中,等于B2單元格的數量大于1,就返回指定的結果1“重復”,否則返回空值。運算的結果如E列所示。
可是當我們仔細檢查時就會發現,B2和B11單元格的身份證號碼是完全相同的,因此函數結果判斷為重復,但是B6單元格只有前15位號碼和B2、B11單元格內容相同,函數結果仍然判斷為重復,這顯然是不正確的。
我們來看一下究竟是什么原因呢?雖然B列中的身份證號碼為文本型數值,但是COUNTIF函數在處理時,會將文本型數值識別為數值進行統計。在Excel中超過15位的數值只能保留15位有效數字,后3位全部視為0處理,因此COUNTIF函數將B2、B6、B11單元格中的身份證號碼都識別為相同。
用什么辦法來解決這種誤判的問題呢?可將E2單元格公式修改為:
=IF(COUNTIF($B$2:$B$11,B2&"*")>1,"重復","")
在上面這個公式中,COUNTIF函數的第2參數使用了通配符"*",最終得出正確結果。使用通配符"*"的目的是使其強行識別為文本進行統計,相當于告訴Excel“我要統計的內容是以B2單元格開頭的文本”,Excel就會老老實實的去執行任務了。所以說,Excel就像一個忠實的士兵,能不能打勝仗,關鍵還是要看我們怎么指揮的。
除了在第二參數后面加通配符的方法以外,也可使用以下數組公式完成計算:
{=IF(SUM(N(B2=$B$2:$B$11))>1,"重復","")}
這個公式中,直接使用了等式B2=$B$2:$B$11,等號就像一個天平,只有左右兩側完全一致了,等式才會成立的。
等式B2=$B$2:$B$11返回的是邏輯值TRUE或是FALSE,用N函數將邏輯值轉換為數值,TRUE轉換為1,FALSE轉換為0,然后再用SUM函數求和。通過這樣迂回的方法完成是否重復的判斷。
昨天為大家留下了一個問題,運用COUNTIF函數統計數據區域中的不重復個數:
下面就簡單學習一下,怎么處理這個不重復數量的統計問題。
可以使用這個數組公式(別忘了,數組公式需要按下Shift+Ctrl Enter才可以哦):
{=SUM(1/COUNTIF(A2:A14,A2:A14))}
怎么去理解這個公式呢?{=SUM(1/COUNTIF(區域,區域))}是計算區域中不重復值個數的經典公式。
1、公式中“COUNTIF(A2:A14,A2:A14)”部分是數組計算,運算過程相當于:
=COUNTIF(A2:A14,A2)
=COUNTIF(A2:A14,A3)
……
=COUNTIF(A2:A14,A14)
結果為數組{2;2;1;1;2;1;1;1;1;2;2;2;1},表示區域中等于本單元格數據的個數。
2、“1/{2;2;1;1;2;1;1;1;1;2;2;2;1}”部分的計算結果為{0.5;0.5;1;1;0.5;1;1;1;1;0.5;0.5;0.5;1},用1除以個數,是本公式的核心,要結合前后計算才能領會好它的作用。為便于理解,把這一步的結果整理一下,用分數代替小數,結果為:{1/2;1/2;1;1;1/2;1;1;1;1;1/2;1/2;1/2;1}。
如果單元格的值在區域中重復出現兩次,這一步的結果就有兩個1/2。如果單元格的值在區域中重復出現3次,結果就有3個1/3,如此類推。
3、最后用SUM函數求和,計算結果為10。
關于excel表格COUNTIF函數的妙用就分享到這了,大家覺得COUNTIF函數好不好用呢?大家可以關注教程之家,里面有更多精彩的Excel教程帶給大家。