数据透视表和公式法在Excel中实现去除重复计数的方法

在Excel中经常会遇到数据去重后计数的情况,例如有如下数据:

最原始的方法是把数据复制粘贴出来去重后再计数,但是只适用于数量较少的情况。大批量的计算有两种方法:数据透视表法和公式法

数据透视表

如果你使用的是Excel 2013及以上的版本,且非MAC版本,那么使用数据透视表是最简单的方法

选择数据区域后,点击"插入"选项卡中的"数据透视表",在弹出来的对话框中勾选"将此数据添加到数据模型" (注意一定要勾选),生成数据透视表。

将"班级"拖到行标签中,再将"科目"拖到值项中,就可以看到初始的统计结果中是所有行数的计数,包含重复值。
接着我们在数据透视表字段的值区域的"科目"里点击鼠标的右键,选择"值字段设置",在弹出来的对话框中选择"非重复计数"

可以看到对应的计数结果就是去除了重复后的计数。也就是对应班级的去重科目计数,总计对应的是整个科目列的去重计数。

数据透视表是非常简单,非常灵活同时功能强大的方法,但是如果Excel版本不支持的话就只能使用公式的方法解决。

公式法

如果需要统计所有科目的去重数量,则输入公式:

复制代码
=SUMPRODUCT(1/COUNTIF(B2:B13,B2:B13))

这个公式的逻辑是先用COUNTIFS这个条件计数计算每一个科目的出现次数,并得到一个数组:

{2;4;3;2;4;3;2;4;3;2;4;1},即语文出现了两次,数学出现了四次等等以此类推。

之后用1/COUNTIF(B2:B13,B2:B13)得到对应的分数,例如语文出现了两次,则语文对应的两个数变为1/2,再使用SUMPRODUCT相加结果即为1.这样每个科目的最终结果相加都为1,得到的结果就是科目的计数。

再此基础上,如果需要加上其他条件进行去重计数,例如要根据班级统计每个班级去重的科目数量,则可以输入公式:

复制代码
=SUMPRODUCT(($C$2:$C$13=H6)/COUNTIFS($B$2:$B$13,$B$2:$B$13,$C$2:$C$13,$C$2:$C$13))

逻辑与上面所说的基本一致,COUNTIFS计算符合两个条件的所有计数,然后再均分后相加。

公式方法比较麻烦,需要理解逻辑并且要写较多的公式,但基本所有的Excel版本都能用。

相关推荐
Ryo_Yuki13 小时前
【上市公司文本分析】根据句号和分号进行文本分割,提取含有特定关键词的语句并导出为EXCEL
python·excel
守护安静星空19 小时前
Qt编辑excel:QtXlsxWriter
excel
FL16238631293 天前
[windows工具]PDFOCR识别导出Excel工具1.1版本使用教程及注意事项
windows·excel
Lauren_Lu3 天前
如何在 ArcGIS 中使用 Microsoft Excel 文件_20250614
microsoft·arcgis·excel
勇太的数分之旅3 天前
Excel大厂自动化报表实战(互联网金融-数据分析周报制作下)
信息可视化·金融·数据分析·自动化·excel·数据可视化
Channing Lewis4 天前
sharepoint 共享excel,如何实现某个 sheet 别人只读,但是另一个 sheet 可以编辑
excel·sharepoint
霸王蟹4 天前
前端项目Excel数据导出同时出现中英文表头错乱情况解决方案。
笔记·学习·typescript·excel·vue3·react·vite
开开心心就好4 天前
高效账号信息管理工具,可安全随机生成密码
javascript·安全·docker·智能手机·pdf·word·excel
勇太的数分之旅5 天前
Excel大厂自动化报表实战(互联网金融-数据分析周报制作上)
金融·数据分析·自动化·excel·数据可视化
勇太的数分之旅5 天前
Excel大厂自动化报表实战(互联网金融-数据分析周报制作中)
金融·数据分析·自动化·excel·数据可视化