統計一個區域中不重複的單元格內容數量

有同事問我,怎麼能統計出一個兩維表格中不重複的圖號數量?其實,如果不考慮重複的事情,就很好解決了,右擊EXCEL界面的右下如圖部分,將默認的Sum選項改爲Count選項,即可統計出所選擇範圍中內容不爲空的單元格的數量。

image

image

如果我們選擇下面的部分,

image

就會在EXCEL界面的右下解看到計數的數量image

但這不是我們所需要的,因爲這裏面有重複的圖號,我們是想要不重複的圖號的數量。

爲此,我採取一種轉換的方法來作爲解決這個問題的方法:即採取將兩維表格變爲一維表格的方法,將複雜問題簡單化。

我們需要對這個表格進行分析,我要將這個區域內的單元格逐個讀取,並寫在另一個Sheet中。爲方便舉例,我擬一這個表格,我們可以看出,它的數據區有6行,7列。這樣,我們可以採用offset函數來讀取這個數據區。

offset的用法簡單說,就是5個變量。下面的函數描述是來自EXCEL的HELP。

OFFSET(reference,rows,cols,height,width)

Reference    is the reference from which you want to base the offset. Reference must refer to a cell or range of adjacent cells; otherwise, OFFSET returns the #VALUE! error value.

Rows    is the number of rows, up or down, that you want the upper-left cell to refer to. Using 5 as the rows argument specifies that the upper-left cell in the reference is five rows below reference. Rows can be positive (which means below the starting reference) or negative (which means above the starting reference).

Cols    is the number of columns, to the left or right, that you want the upper-left cell of the result to refer to. Using 5 as the cols argument specifies that the upper-left cell in the reference is five columns to the right of reference. Cols can be positive (which means to the right of the starting reference) or negative (which means to the left of the starting reference).

Height    is the height, in number of rows, that you want the returned reference to be. Height must be a positive number.

Width    is the width, in number of columns, that you want the returned reference to be. Width must be a positive number.

簡單解釋這5個變量:

reference是你選中的參考位置,即基準單元格,如果你用它來作爲公式使用,一般都使用絕對引用方式。

rows是基於你的基準單元格的行偏移量,即相對於你當前的單元格(或區域左上角單元格)偏離基準單元格的行數。

cols是基於你的基準單元格的列偏移量,即相對於你當前的單元格(或區域左上角單元格)偏離基準單元格的列數。

height是你要引用的區域的高,如果你只引用一個單元格,則該值爲1。

width是你要引用的區域的寬,如果你只引用一個單元格,則該值爲1。

該公式用在作EXCEL的動態菜單時極爲有用,關於這部分的內容,我將在另外的文章中作說明。

這樣,我們就瞭解了offset的基本用法。同時你也會發現,我們將reference作爲絕對引用,rows和cols用變量來填充,是不是就可以遍歷整個數據區域了。

所以,我們在另外一個Sheet中作出兩列數來,第1列是行計數,第2列是列計數,我們先看列計數的公式。

image image

B1單元格我們預設了個"1",B2單元格的公式見上面的截圖。公式的含義爲判斷當前的單元格的值,如果上一個單元格的數值加1後超過了7,就重置爲1,否則就是上一個單元格的數值加1。

image

行計數的公式也類似,A1單元格我們預設了個"1",A2單元格的公式見上面的截圖。公式的含義爲判斷後一列的列計數的數值,如果B列的同行的單元格中數值比上一個同列單元格的數值要小,就將本單元格的數值加1,否則數值不變。這意味着列計數已經重置了,說明行計數需要增加了。

這樣行和列的公式就作完了,我們複製這些公式向下,直到A列的值達到我們數據區域的上限6。

image

隨後我們就開始作讀取數據區的公式。

image 

上面的截圖就是讀取數據區的公式。我們可以參照我們前面所述的公式解釋來理解。Sheet1!$A$1表示我們的基準單元格是Sheet1的A1單元格,爲使公式複製時該基準單元格不變化,所以我們使用了絕對引用,用$來固定這個單元格。

Sheet2!A1和Sheet2!B1表示我們使用Sheet2的A1和B1單元格里的數值來作爲相對於基準單元格的偏移量。

最後兩個"1"表示我們要讀取的區域是一個單元格,而不是多個單元格,因爲高和寬均是1。

這樣我們就可以複製這些公式了。

image

這裏我們只截取前面幾行的效果來展示一下。這樣,我們就把一個兩維表格給轉化成一維表格了。這個表格相當於我們先行後列的方式,先是第一行從左到右,結尾時再折下來,隨後再是第二行、第三行……

有了這個一維表格,我們就進行下一步:排序和統計。

我們將這個一維表格進行排序。先複製這些數據,再作數值的選擇性粘貼。

image

image

image

image

image

我們再作排序。

image

image

我們需要告訴EXCEL這個區域沒有標題行。

image

點擊OK後,有可能你會看到這個警告信息。

image

這是因爲我們的數據區域中的混雜着文本數字和數值,EXCEL提示你數據中可能有文本的數字,讓你選擇如何處理,一般情況下,我們都選擇第一個選項,讓EXCEL把所有像數字的內容均作爲數字處理。點擊OK後繼續。

我們就得到了已經排過序的數據區域了。

image

 

下一步,我們再對這塊區域作處理。

image 

我們在B1單元格預設一個"0",因爲A列中的0表示原表格中的內容爲空,所以不是我們想要的。

在B2單元格,我們編了一個公式,來判斷當前行的A列單元格中的內容是否與上一個單元格內容相同,如果相同,就意味着重複,所以當前單元格數值不變,否則意味着有一個不同的內容出現了,當前單元格數值加1。

公式向下複製。

image

數據區的最後內容。

image

我們可以看數據區的最後一個單元格中的數值就是我們想知道的該數據區域中有多少個不重複的內容的計數。

我們也可以再作個公式來看這個計數。

image

公式很簡單,就是一個MAX函數,其中的參數就是我們要看的B列。其結果就是我們已經知道的那個計數。

至此,我們的統計工作完成。我們可以把這個文件保存下來,以後再遇到類似情況時,只需要改動其中的部分參數就可以實現重複使用的目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章