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

跨工作表统计:如何计算指定员工列表中匹配目标属性的人数

跨工作表统计在岗员工中特定属性人数的解决方案(Excel/Google Sheets)

核心需求回顾

  • Tab1!A列:X日在岗员工名单
  • Tab2!A列:全体员工名单,Tab2!B列:员工对应属性
  • 统计目标:Tab1中属性为Attribute1的员工总数(示例结果为2)

通用解决方案(Excel & Google Sheets 兼容)

SUMPRODUCT 公式

这是兼容性最强的方案,适用于所有版本的Excel和Google Sheets:

=SUMPRODUCT(--(Tab2!B:B="Attribute1"), --(COUNTIF(Tab1!A:A, Tab2!A:A)>0))

逻辑说明:

  1. --(Tab2!B:B="Attribute1"):将Tab2中属性为Attribute1的行转换为1,其他为0
  2. --(COUNTIF(Tab1!A:A, Tab2!A:A)>0):判断Tab2的员工是否出现在Tab1的在岗名单中,存在则为1,否则为0
  3. SUMPRODUCT将两个数组对应位置相乘后求和,最终得到同时满足「属性为Attribute1」且「当日在岗」的员工数

Excel 专属优化方案(365/2021 及以上版本)

利用动态数组函数更直观实现:

=COUNTA(FILTER(Tab1!A:A, (XLOOKUP(Tab1!A:A, Tab2!A:A, Tab2!B:B, "")="Attribute1")*(Tab1!A:A<>"")))

逻辑说明:

  1. XLOOKUP(Tab1!A:A, Tab2!A:A, Tab2!B:B, ""):为Tab1的每个在岗员工匹配对应的属性,无匹配则返回空值
  2. FILTER筛选出属性为Attribute1且非空的在岗员工
  3. COUNTA统计筛选结果的数量

Google Sheets 专属优化方案

方案1:动态数组公式

=COUNTA(FILTER(Tab1!A:A, XLOOKUP(Tab1!A:A, Tab2!A:A, Tab2!B:B, "")="Attribute1", Tab1!A:A<>""))

逻辑和Excel版一致,Google Sheets原生支持该语法。

方案2:QUERY 函数

更灵活的查询式统计,适合复杂场景扩展:

=QUERY(Tab2!A:B, "SELECT COUNT(A) WHERE B='Attribute1' AND A MATCHES '"&TEXTJOIN("|", TRUE, FILTER(Tab1!A:A, Tab1!A:A<>""))&"'", 0)

逻辑说明:

  1. FILTER(Tab1!A:A, Tab1!A:A<>""):排除Tab1中的空单元格
  2. TEXTJOIN("|", TRUE, ...):将在岗员工名单转为正则匹配的字符串(用|分隔)
  3. QUERY从Tab2中统计满足「属性为Attribute1」且「员工在在岗名单中」的数量

为什么你之前的尝试没成功?

  • COUNTIF/COUNTIFS:这类函数要求条件区域与计数区域一一对应,跨表直接使用无法同时关联「Tab1的在岗状态」和「Tab2的属性」两个独立维度
  • COUNTIF+VLOOKUP:如果未处理数组运算(比如旧版Excel未按Ctrl+Shift+Enter确认数组公式),或者未针对空值/无匹配情况做处理,会导致结果错误

内容的提问来源于stack exchange,提问作者sherbertherbert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 16:09:57