You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel统计:不重复计数选修Math或Science课程的StudentID

统计选修Math或Science课程的唯一学生ID数量的Excel公式方案

样本数据

StudentIDSubjectClassName
001MathAlgebra I
002ScienceBiology
002MathAlgebra II
002HistoryUS History
003MathGeometry
003ScienceChemistry
004EnglishPlaywriting
004MathTrigonometry
004LanguageSpanish I
004LanguageItalian I
005EnglishPlaywriting
005EnglishSpeech Writing
006LanguageLinguistics
006SciencePhysics
006EnglishRhetoric
007LanguageSpanish II
007MathPre-Calculus
008HistoryWorld History
008LanguageFrench I
008EnglishMythology
009EnglishPoetry

需求:统计选修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(...):去除筛选结果中的重复StudentID
  • ROWS(...):统计去重后的学生总数

方案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列首次出现的行号,不符合条件的返回FALSE
  • FREQUENCY(...,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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:14:51