前篇文章我们介绍了一下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函数的用法。