1. 程式人生 > >【Excel】統計不重複資料的個數,設定單元格不允許出現重複資料

【Excel】統計不重複資料的個數,設定單元格不允許出現重複資料

前篇文章我們介紹了一下Excel中如何設定資料有效性以及COUNTIF函式的用法,這篇文章主要介紹有重複資料時如何統計不重複資料的個數以及通過資料有效性去設定單元格不允許出現重複資料。

統計單列不重複的個數

如下圖所示,要統計B列資料的不重複個數,也就是通過、不適用、未測試、不通過總共4個。應該如何用公式計算呢?

不重複資料統計

我們可以在E6單元格輸入公式=SUMPRODUCT(1/COUNTIF(B2:B16,B2:B16)),即可統計出B列B2:A16單元格區域的不重複值的個數。

公式計算不重複個數

公式解釋:COUNTIF(B2:B16,B2:B16)將對B2:A16單元格區域中的每個資料進行個數統計,也就是B2:B16單元格區域中B2單元格數值的個數是COUNTIF(B2:B16,B2),B2:B16單元格區域中B3單元格數值的個數是COUNTIF(B2:B16,B3)。。。以此類推,相當於=COUNTIF(B2:B16,{B2;B3;...;B16}),最後的結果就是將每一單元格數值個數組成一個集合{9;2;2;9;...;2)

然後通過1/統計的結果,將個數取倒數,1/COUNTIF(B2:B16,B2:B16),得到的結果是={1/9;0.5;0.5;1/9;...;0.5}舉例說明,由於數值"通過",在B2:B16單元格區域中有9個,取倒數後就是1/9,9個1/9相加就等於1。也就是將9個重複的"通過"算作了1個,以此類推其它數值。最後用SUMPRODUCT函式將這些結果相加就得到了總的不重複個數。SUMPRODUCT說白了它的一個簡單用法就是對集合中的數值進行求和,比如:SUMPRODUCT({1,2,3})相當1+2+3

單列單元格中不允許輸入重複值

工作中有時我們需要限制某列輸入重複的數值,我們可以以下方法來實現。

單擊要設定的列的列標籤全選該列,然後單擊“資料”選項卡下的“資料工具”組中的“資料有效性”命令按鈕。

不允許重複

在彈出的“資料有效性”對話方塊下的“設定”選項卡“有效性條件允許”中設定“自定義”,然後在公式區域選擇框中輸入公式=COUNTIF(A:A,$A1)=1,其中如果活動單元格是A1,就輸入公式=COUNTIF(A:A,$A1)=1,活動單元格是A2,就輸入公式=COUNTIF(A:A,$A2)=1,以此類推,最後單擊“確定”按鈕。

不允許重複設定

然後在A列輸入重複的資料時將會彈出如下圖所示的提示:

不允許重複提示

有點可惜,如果A列原先就有重複的資料,設定時是不會提示的,而且重複的資料不會改變(這種情況可以限制我們改動重複的資料,不過沒什麼用處)。此外複製相同重複的資料,也是可以的,不會提示輸入值非法。

那有沒有什麼辦法解決這個問題呢?其實我們可以通過圈釋無效資料方法標記重複的資料。我們可以點選“資料有效性”,然後在選擇“圈劃無效資料”,然後我們發現,A列有重複的資料都被自動圈划起來,這時我們可以確認是允許重複還是不允許重複輸入。

圈釋無效資料

下篇文章將會介紹如何去除某列中重複的資料,然後再詳細介紹一下SUMPRODUCT函式的用法。