Excel合并单元格中用COUNTIF统计各班级科目数量的方法咨询
保留合并单元格时统计班级对应科目数量的方法
当然可以实现,不用拆分合并单元格,以下是两种实用的公式方案:
方案1:使用SUMPRODUCT匹配班级范围
假设班级列是A列(存在合并单元格),科目列是B列,统计结果放在F列对应班级的合并单元格中。
在F列第一个班级对应的单元格(比如A2是"A班"合并单元格的顶部)输入公式:
=SUMPRODUCT((LOOKUP(ROW(A$2:A$100),ROW(A$2:A$100)/(A$2:A$100<>""),A$2:A$100)=A2)*(B$2:B$100<>""))
选中该公式所在的合并单元格,下拉填充至其他班级行即可。
原理
LOOKUP(ROW(A$2:A$100),ROW(A$2:A$100)/(A$2:A$100<>""),A$2:A$100) 会为每行匹配对应的班级名称(即使所在行的A列单元格是空的,也会向上找到最近的非空班级值),之后通过SUMPRODUCT统计该班级下非空的科目数。
方案2:累计减法(适合按顺序排列的班级)
如果班级是连续合并排列的(同一班级的行连在一起),可以用更简单的累计公式:
在F2单元格输入:
=COUNTIF(B$2:B$100,"<>")-SUM(F$1:F1)
下拉填充即可。
原理
COUNTIF(B$2:B$100,"<>") 统计所有非空的科目总数,SUM(F$1:F1) 累加之前已经统计过的科目数,两者的差值就是当前班级的科目数量。这个方法不需要匹配班级名称,依赖班级按顺序排列的前提。
为什么COUNTIF直接用会失效?
因为合并单元格只有顶部的单元格存储了班级名称,其他单元格是空值。直接用COUNTIF(A:A,A2)只会统计A列中等于"A2"值的单元格数量(也就是1),无法关联到该合并单元格覆盖的所有行的科目数。
内容的提问来源于stack exchange,提问作者Cath
相关产品推荐
相关产品推荐

