判断Excel单元格区域中是否有重复值
使用公式确定指定的单元格区域中是否有重复值。如下图所示的工作表单元格区域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公式是多么的巧妙!!!