如何基于Name和class双条件统计credit的唯一出现次数
双条件去重统计credit次数解决方案
你需要基于Name、class双条件统计去重后的credit出现次数,可参考以下不同工具的实现方案:
1. Excel / WPS 表格实现
支持动态数组的新版本(Excel 2021及以上、WPS 2021及以上)
- 第一步提取所有唯一的姓名+班级组合:空白单元格输入
=UNIQUE(选择你的Name列和Class列的所有数据范围),即可自动生成所有不重复的双条件组合 - 第二步对应每个组合统计去重credit数量:在组合旁的空白单元格输入公式,示例:
=COUNT(UNIQUE(FILTER(C:C,(A:A=E2)*(B:B=F2),"")))
公式说明:C列为credit列、A列为Name列、B列为class列,E2为当前行的姓名、F2为当前行的班级,可根据你的表格实际列号修改
旧版本Excel
使用SUMPRODUCT兼容公式:=SUMPRODUCT((A:A=E2)*(B:B=F2)*(1/COUNTIFS(C:C,C:C,A:A,E2,B:B,F2)))
2. Python Pandas 实现
import pandas as pd # 读取你的表格数据,支持xlsx、csv等格式 df = pd.read_excel("你的表格文件路径.xlsx") # 先按Name、class、credit三个字段去重,再分组统计数量 stat_result = df.drop_duplicates(subset=["Name", "class", "credit"]) \ .groupby(["Name", "class"], as_index=False)["credit"].count() \ .rename(columns={"credit": "去重后credit次数"}) # 导出统计结果到新文件 stat_result.to_excel("统计结果.xlsx", index=False)
3. SQL 实现
如果数据存储在关系型数据库中,直接执行如下查询即可:
SELECT Name, class, COUNT(DISTINCT credit) AS 去重后credit次数 FROM 你的表名 GROUP BY Name, class;
内容的提问来源于stack exchange,提问作者Sameer Farooqui
相关产品推荐
相关产品推荐

