Excel表格中不重複單元格的個數(Excel怎麼統計表格中相同內容的個數)


看看下面這個問題,一看就是一個高難度的問題,一個彩票號碼中不重複的個數,B2為啥是5?A1單元格的彩票號9376343,除了3重複之外,9,7,6,4都不重複,在加上3,一共是五個數字。

牛閃閃估計也搞不定,還好這位同學的老師牛,出了一個招,牛閃閃也學習了一下,不敢獨享,與大家分享一下。

場景:彩票分析,重複項統計、資料分析等的辦公人士。

問題:如何統計單元格中不重複的數字個數?

解答:利用count find函式巢狀搞定

具體操作如下:

直接在下圖C4單元格,輸入如下公式:

=COUNT(FIND(ROW($A$1:$A$11)-1,B4))

注意公式中A1:A11的範圍正好是1-11這個數值範圍。為什麼呢?過會牛閃閃給大家解釋。

輸入該公式後,需要按住Ctrl Shift,然後在敲擊“Enter回車鍵”即可。(Ctrl Shift enter是陣列公式的錄入按鍵),敲擊完成後,注意公式會前後兩段加上大括號{}。(下圖箭頭處)大括號是說明該公式為陣列公式。

輸入完畢後,雙擊C4單元格右下角的資料填充柄(上圖箭頭1所示),即可完成公式複製,算出每行B列彩票的不重複的數字個數。大家可以驗證一下這個數值是否正確。

我們需要搞清楚這個公式的用意,才能做到舉一反三。

=COUNT(FIND(ROW($A$1:$A$11)-1,B4))

上面這個公式用了三個函式,先來看看ROW函式。

ROW返回單元格所在的行數,舉例如下,求B25單元格所在的行數,那肯定是25。

那ROW($A$1:$A$11)是什麼鬼?

如果你輸入進去試試,你會發現行數為1.效果如下圖:

也就是說ROW正常情況下只取第一個單元格的行數,那為什麼要選擇區域呢?主要為了陣列公式配合。那是數值公式,簡單的講就是按資料區域(面)來進行統計的方式。如果按照陣列的思路,那麼ROW(A1:A11),就能統計出A1到A11單元格每一行的行數,即1,2,3,4,5,6,7,8,9,10,11。

那ROW($A$1:$A$11)-1,是什麼就是每一行都減去1行,就變成0,1,2,3,4,5,6,7,8,9,10。其實這個函式主要為了產生1-10的一個數字。

接下來學習一下FIND函式。FIND函式主要是取得某個數在某個單元格的開始位置。舉例如下:

比如要找6這個數字在B4單元格中數值的位置,返回是4。表明6在9376343這個數字的從左往右數是第四個。

FIND(ROW($A$1:$A$11)-1,B4)

那麼把ROW巢狀到FIND裡面,無非就是為了告訴FIND,要找0,1,2,3,4,5,6,7,8,9,10在單元格中的位置。如果這個數字有,就會返回一個位置數字。

=COUNT(FIND(ROW($A$1:$A$11)-1,B4))

而在外面在套一個count函式,就是對有位置的數字進行計數統計,從而算出不重複的數字的個數。牛閃閃用“公式求值功”能來追蹤一下,

選中下圖C4單元格,點選“公式—公式求值”,在新彈視窗中點選“求值”,就可以進行逐步運算。

看,分別尋找0-10,在B4中的位置,分別返回位置數。

在繼續點求值,就會出下下圖效果,可以看到0,1,2在9376343中沒有,所以是#value!(錯誤值)。3在9376343中為第二位,所以返回是2,4在在9376343中為第六位,所以是6,以此類推算出能在9376343找到的數字的位數。

最後利用count函式的特性,只統計數字的個數,自動忽略錯誤值,所以算出不重複的數字的個數。如下圖所示:

如果你理解的話,你會發現上面的公式寫得不是那麼完美,其實只要判斷0-9的數字就可以了,幹嘛要到10呢。所以把公式改改:把A1:A11改成A1:A10也是可以的,記住將游標停在編輯欄,在按Ctrl Shift enter鍵進行公式錄入,才有效。

甚至可以直接改成陣列的寫法,記得用大括號括起來,這樣直接敲回車enter就可以錄入公式。

總結:這個案例是不是有點小難度,但如果你理解陣列其實按區域面積進行統計後,你就會發現其實想象中那麼難。通常簡單函式的“高階”用法就是陣列思路解決問題。希望對大家有所幫助。