Excel多条件计数:按周统计指定姓名出现次数及汇总表制作
问题描述
现有一张人员分配表(每行不会重复出现相同姓名),需要完成两个需求:
- 给定具体姓名和周次,统计该姓名在对应周次里的出现次数(比如John在WEEK 1里出现了3次)
- 制作一张汇总表,自动填好每个人员每周的出现次数
试过COUNTIF、MATCH、INDEX、VLOOKUP这些函数组合,但搞不定区域和数组条件;查过相关方案,只能返回每周的首次匹配结果,没解决问题。
解决方案
一、单个条件统计(指定姓名+周次)
用SUMPRODUCT函数就行,它能处理多条件的数组运算,刚好匹配你的需求。假设原始表里:
- 周次列是
A:A,姓名分布在B:F(你可以根据实际列范围调整) - 要统计的姓名写在
H2,周次写在I2
直接用这个公式:
=SUMPRODUCT((A:A=I2)*(B:F=H2))
简单说:(A:A=I2)会生成一个布尔数组,把对应周次的行标出来;(B:F=H2)生成另一个数组,标记姓名出现的单元格;两个数组相乘后,符合双条件的单元格会返回1,其余是0,求和后就是总次数。
二、汇总表自动填充
假设汇总表的布局是:
- 左边列是人员姓名(
A2:A10) - 顶部行是周次(
B1:F1,对应WEEK 1到WEEK 5)
在汇总表的B2单元格输入下面的公式,然后下拉、右拉就能自动填充所有数据:
=SUMPRODUCT((原始表!$A:$A=B$1)*(原始表!$B:$F=$A2))
注意引用规则:
原始表!$A:$A=B$1:锁定周次的行引用,右拉时会自动对应不同周次原始表!$B:$F=$A2:锁定姓名的列引用,下拉时会自动对应不同人员
旧版Excel兼容方案
如果你的Excel版本不支持动态数组,也可以用COUNTIFS结合INDEX+MATCH的数组形式,但SUMPRODUCT更简洁好用,优先推荐。
内容的提问来源于stack exchange,提问作者Rafael
相关产品推荐
相关产品推荐

