Excel统计:不重复计数选修Math或Science课程的StudentID
统计选修Math或Science课程的唯一学生ID数量的Excel公式方案
样本数据
| StudentID | Subject | ClassName |
|---|---|---|
| 001 | Math | Algebra I |
| 002 | Science | Biology |
| 002 | Math | Algebra II |
| 002 | History | US History |
| 003 | Math | Geometry |
| 003 | Science | Chemistry |
| 004 | English | Playwriting |
| 004 | Math | Trigonometry |
| 004 | Language | Spanish I |
| 004 | Language | Italian I |
| 005 | English | Playwriting |
| 005 | English | Speech Writing |
| 006 | Language | Linguistics |
| 006 | Science | Physics |
| 006 | English | Rhetoric |
| 007 | Language | Spanish II |
| 007 | Math | Pre-Calculus |
| 008 | History | World History |
| 008 | Language | French I |
| 008 | English | Mythology |
| 009 | English | Poetry |
需求:统计选修Math或Science课程的唯一StudentID数量,每个学生仅计数一次,示例数据中符合条件的学生共6位。
可行公式方案
方案1:Excel 365/2021及以上版本(动态数组函数)
利用动态数组函数实现简洁高效的统计:
=ROWS(UNIQUE(FILTER(A:A,(B:B="Math")+(B:B="Science"),"")))
公式解析:
FILTER(A:A,(B:B="Math")+(B:B="Science"),""):筛选出所有选修Math或Science的StudentID(+代表逻辑或)UNIQUE(...):去除筛选结果中的重复StudentIDROWS(...):统计去重后的学生总数
方案2:兼容旧版Excel(无动态数组支持)
通过SUMPRODUCT和FREQUENCY组合解决重复计数问题:
=SUMPRODUCT(--(FREQUENCY(IF((B:B="Math")+(B:B="Science"),MATCH(A:A,A:A,0)),ROW(A:A)-ROW(A1)+1)>0))
公式解析:
IF((B:B="Math")+(B:B="Science"),MATCH(A:A,A:A,0)):对符合条件的行,返回对应StudentID在A列首次出现的行号,不符合条件的返回FALSEFREQUENCY(...,ROW(A:A)-ROW(A1)+1):统计每个首次出现行号的出现次数,仅首次出现的行号会得到大于0的结果--(...)>0:将逻辑值转换为1(符合)或0(不符合)SUMPRODUCT:求和得到唯一学生的数量
注意:实际使用时建议替换整列引用(如A:A、B:B)为具体的数据范围(如A2:A22、B2:B22),可提升计算效率;若数据起始行不是A1,需调整公式中的
ROW(A1)为对应起始行的行号。
内容的提问来源于stack exchange,提问作者Caleb Coffin
相关产品推荐
相关产品推荐

