使用公式確定指定的單元格區域中是否有重復值。如下圖所示的工作表單元格區域A1:A9,我們將其命名為Data。
如果區域Data中有重復值,則返回False;如果區域Data中的值都不一樣,則返回True。上圖所示的區域Data中明顯有多個重復值,因此應該返回False。
先不看下面的答案,自已動手試試。
公式思路
將區域Data中的每個值依次與區域中的所有值進行比較并統計與其相同的值的個數,由這些統計數組成一組數,如果這組數都由1組成,表明區域中的每個值都與其它值不同,即沒有重復值,否則有重復值。
公式解析
使用下面的數組公式來判斷單元格區域中是否有重復值:
=MAX(COUNTIF(Data,Data))=1
在單元格中輸入公式后按Ctrl+Shift+Enter組合鍵,如下圖所示。
COUNTIF(Data,Data)展開來就是COUNTIF({1;5;6;8;5;1;6;1;8},{1;5;6;8;5;1;6;1;8})。首先測試COUNTIF({1;5;6;8;5;1;6;1;8},1),統計1在單元格區域Data中的次數,得到3;接著測試COUNTIF({1;5;6;8;5;1;6;1;8},5),統計5在單元格區域Data中的次數,得到2;……依此類推。最后,COUNTIF(Data,Data)得到的結果是{3;2;2;2;2;3;2;3;2}。這個結果作為MAX函數的參數,得到數組中的最大值為3,不等于1,因此最終的結果是FALSE,表明單元格區域Data中有重復值。
小結
仔細體味這個公式,很有意思的是使用兩個相同值作為參數進行比較統計。讓我能感覺到Excel公式是多么的巧妙!!!