You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

按条件统计列出现次数:Excel多角色履职人数统计求助

解决不同角色承担需统计职责的人数统计问题

看起来你卡在了数组函数的组合使用上,我来帮你拆解这个问题,给出几个实用的解法,覆盖不同Excel版本。

首先先明确你的数据结构(假设是下面这样,你可以对应自己的表格调整):

  • 人员表(比如Sheet1):列包含角色(B列)、职责(C列)
  • 职责对照表(比如Sheet2):A列是职责名称,C列是计入统计标记(X表示需要统计)

解法1:用SUMPRODUCT(兼容所有Excel版本)

这是最稳妥的方案,不需要按数组快捷键,直接输入公式即可。比如要统计Boss角色中承担需计入职责的人数,在目标单元格输入:

=SUMPRODUCT(--(Sheet1!$B$2:$B$100="Boss"),--(VLOOKUP(Sheet1!$C$2:$C$100,Sheet2!$A$2:$C$100,3,FALSE)="X"))

公式解释:

  • --(Sheet1!$B$2:$B$100="Boss"):把“角色是Boss”的逻辑判断转成1(是)或0(否)的数组
  • --(VLOOKUP(...)="X"):对每个人员的职责,从对照表中查找对应的计入标记,判断是否为X,同样转成1/0数组
  • SUMPRODUCT会把两个数组对应位置相乘后求和,最终得到符合条件的人数

如果你更习惯用INDEX+MATCH替代VLOOKUP(避免VLOOKUP只能从首列匹配的限制),可以用这个版本:

=SUMPRODUCT(--(Sheet1!$B$2:$B$100="Boss"),--(INDEX(Sheet2!$C$2:$C$100,MATCH(Sheet1!$C$2:$C$100,Sheet2!$A$2:$A$100,0))="X"))

解法2:SUM+IF数组公式(旧版Excel需要三键结束)

如果你之前尝试过SUM+IF但失败,大概率是没按数组快捷键。公式如下:

=SUM(IF((Sheet1!$B$2:$B$100="Boss")*(VLOOKUP(Sheet1!$C$2:$C$100,Sheet2!$A$2:$C$100,3,FALSE)="X"),1,0))

输入完成后,必须按Ctrl+Shift+Enter(旧版Excel),Excel会自动在公式两端加上{},表示这是数组运算。

解法3:Excel 365/2021动态数组解法(自动生成所有角色统计)

如果你用的是新版Excel,可以一步到位生成所有角色的统计结果,不需要逐个写公式:

=GROUPBY(Sheet1!$B$2:$B$100,--(VLOOKUP(Sheet1!$C$2:$C$100,Sheet2!$A$2:$C$100,3,FALSE)="X"),SUM,,1)

这个公式会自动输出一个两列的结果:第一列是所有角色(Boss/Worker/Aid),第二列是对应角色中承担需统计职责的人数。

常见问题排查

你之前失败的可能原因:

  1. VLOOKUP单独用无法输出数组:没错,但把它嵌套在SUMPRODUCT、SUM+IF这类支持数组运算的函数里,就能批量处理每个单元格的职责匹配了
  2. 数据匹配失败:确保人员表的职责名称和对照表的完全一致(比如没有多余空格、大小写统一),否则VLOOKUP/MATCH会返回错误值,导致统计出错
  3. 数组公式没按三键:旧版Excel中SUM+IF这类数组公式必须按Ctrl+Shift+Enter才能生效

内容的提问来源于stack exchange,提问作者Romain Corthésy

火山引擎 最新活动