Excel-统计不重复数据的个数,设置单元格不允许出现重复数据
2017-12-09 14:26
736 查看
前篇文章我们介绍了一下Excel中如何设置数据有效性以及COUNTIF函数的用法,这篇文章主要介绍有重复数据时如何统计不重复数据的个数以及通过数据有效性去设置单元格不允许出现重复数据。
![](http://img.my.csdn.net/uploads/201712/09/1512799448_7620.jpg)
我们可以在E6单元格输入公式=SUMPRODUCT(1/COUNTIF(B2:B16,B2:B16)),即可统计出B列B2:A16单元格区域的不重复值的个数。
![](http://img.my.csdn.net/uploads/201712/09/1512799448_7098.jpg)
公式解释: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
单击要设置的列的列标签全选该列,然后单击“数据”选项卡下的“数据工具”组中的“数据有效性”命令按钮。
![](http://img.my.csdn.net/uploads/201712/09/1512799517_4650.jpg)
在弹出的“数据有效性”对话框下的“设置”选项卡“有效性条件允许”中设置“自定义”,然后在公式区域选择框中输入公式=COUNTIF(A:A,$A1)=1,其中如果活动单元格是A1,就输入公式=COUNTIF(A:A,$A1)=1,活动单元格是A2,就输入公式=COUNTIF(A:A,$A2)=1,以此类推,最后单击“确定”按钮。
![](http://img.my.csdn.net/uploads/201712/09/1512800119_2528.jpg)
然后在A列输入重复的数据时将会弹出如下图所示的提示:
![](http://img.my.csdn.net/uploads/201712/09/1512799561_8559.jpg)
有点可惜,如果A列原先就有重复的数据,设置时是不会提示的,而且重复的数据不会改变(这种情况可以限制我们改动重复的数据,不过没什么用处)。此外复制相同重复的数据,也是可以的,不会提示输入值非法。
那有没有什么办法解决这个问题呢?其实我们可以通过圈释无效数据方法标记重复的数据。我们可以点击“数据有效性”,然后在选择“圈划无效数据”,然后我们发现,A列有重复的数据都被自动圈划起来,这时我们可以确认是允许重复还是不允许重复输入。
![](http://img.my.csdn.net/uploads/201712/09/1512799561_7157.jpg)
下篇文章将会介绍如何去除某列中重复的数据,然后再详细介绍一下SUMPRODUCT函数的用法。
统计单列不重复的个数
如下图所示,要统计B列数据的不重复个数,也就是通过、不适用、未测试、不通过总共4个。应该如何用公式计算呢?![](http://img.my.csdn.net/uploads/201712/09/1512799448_7620.jpg)
我们可以在E6单元格输入公式=SUMPRODUCT(1/COUNTIF(B2:B16,B2:B16)),即可统计出B列B2:A16单元格区域的不重复值的个数。
![](http://img.my.csdn.net/uploads/201712/09/1512799448_7098.jpg)
公式解释: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
单列单元格中不允许输入重复值
工作中有时我们需要限制某列输入重复的数值,我们可以以下方法来实现。单击要设置的列的列标签全选该列,然后单击“数据”选项卡下的“数据工具”组中的“数据有效性”命令按钮。
![](http://img.my.csdn.net/uploads/201712/09/1512799517_4650.jpg)
在弹出的“数据有效性”对话框下的“设置”选项卡“有效性条件允许”中设置“自定义”,然后在公式区域选择框中输入公式=COUNTIF(A:A,$A1)=1,其中如果活动单元格是A1,就输入公式=COUNTIF(A:A,$A1)=1,活动单元格是A2,就输入公式=COUNTIF(A:A,$A2)=1,以此类推,最后单击“确定”按钮。
![](http://img.my.csdn.net/uploads/201712/09/1512800119_2528.jpg)
然后在A列输入重复的数据时将会弹出如下图所示的提示:
![](http://img.my.csdn.net/uploads/201712/09/1512799561_8559.jpg)
有点可惜,如果A列原先就有重复的数据,设置时是不会提示的,而且重复的数据不会改变(这种情况可以限制我们改动重复的数据,不过没什么用处)。此外复制相同重复的数据,也是可以的,不会提示输入值非法。
那有没有什么办法解决这个问题呢?其实我们可以通过圈释无效数据方法标记重复的数据。我们可以点击“数据有效性”,然后在选择“圈划无效数据”,然后我们发现,A列有重复的数据都被自动圈划起来,这时我们可以确认是允许重复还是不允许重复输入。
![](http://img.my.csdn.net/uploads/201712/09/1512799561_7157.jpg)
下篇文章将会介绍如何去除某列中重复的数据,然后再详细介绍一下SUMPRODUCT函数的用法。
相关文章推荐
- EXCEL数据有效性-允许序列-数据来源如何设置为其它工作表的一大连续区
- phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- 黄聪:phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- POI Excel 09 格式化单元格数据,设置打印区域
- 【rzxt】系统设置Excel单元格数据的对齐方式技巧
- phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- 支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport
- EXCEL中避免同一列及相邻列中出现重复数据[原创]
- 上千万或上亿数据(有重复),统计其中出现次数最多的N个数据. C++实现
- phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- phpexcel中文教程-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- 从txt文件逐行读取数据到excel文件(包含POI的简单使用和excel文件的数据分列,出现次数统计)
- 如何设置excel单元格的数据类型
- PHPExcel-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- excel 设置单元格格式为日期格式,数据未发生转换,双击才转换
- excel禁止(避免)输入重复数据的设置方法
- PHPExcel-设置表格字体颜色背景样式、数据格式、对齐方式、添加图片、批注、文字块、合并拆分单元格、单元格密码保护
- 解决:VB.NET程序中 datagridview 多次绑定出现 的“不能在数据绑定的 DataGridView 控件上设置 ColumnCount
- 数据导到excel时出现Exception from HRESULT: 0x800A03EC的异常
- C#导出Excel按照指定格式设置单元格属性值