无需Pivot与Unique()函数,统计符合条件的唯一员工编号数量
解决方案
假设你的数据中:
- Employee Number列在A列(数据范围A2:A100,表头A1)
- Function列在B列(数据范围B2:B100,表头B1)
下面提供几种不依赖数据透视表(Pivot)和UNIQUE()函数的实现方法:
方法1:SUMPRODUCT+COUNTIFS 一键公式
直接在空白单元格输入以下公式就能得到结果:
=SUMPRODUCT(--(COUNTIFS(A2:A100,A2:A100,B2:B100,"Code 1")>=2))/SUMPRODUCT(--(COUNTIFS(A2:A100,A2:A100,B2:B100,"Code 1")>=2)/COUNTIF(A2:A100,A2:A100))
逻辑说明:
COUNTIFS(A2:A100,A2:A100,B2:B100,"Code 1"):算出每个员工对应的Code 1条目总数--(...)>=2:把“条目数≥2”的条件转换成1(符合)/0(不符合)的数值- 外层
SUMPRODUCT负责聚合计算,通过去重逻辑得到最终的唯一员工数量
方法2:辅助列分步统计(更易理解)
如果觉得数组公式太绕,用辅助列拆分步骤更直观:
- 在C2单元格输入公式,下拉填充到所有行,计算每个员工的Code 1条目数:
=COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,"Code 1") - 在D2单元格输入公式,下拉填充,标记当前行是否属于目标范围(Function为Code 1且条目数≥2):
=IF(AND(B2="Code 1",C2>=2),1,0) - 最后在空白单元格输入公式,统计唯一符合条件的员工数:
=SUMPRODUCT((C2:C100>=2)/COUNTIF(A2:A100,A2:A100)*(C2:C100>=2))
方法3:旧版Excel兼容的数组公式
如果用的是没有动态数组功能的旧版Excel,输入以下公式后按Ctrl+Shift+Enter确认(不是直接回车):
=SUM(IF(FREQUENCY(IF(B2:B100="Code 1",MATCH(A2:A100,A2:A100,0)),ROW(A2:A100)-ROW(A2)+1)>=2,1,0))
逻辑说明:
MATCH(A2:A100,A2:A100,0):返回每个员工编号在列中的首次出现位置FREQUENCY:统计每个首次出现位置对应的条目数量- 筛选出条目数≥2的情况并求和,得到最终结果
内容的提问来源于stack exchange,提问作者Lien0
相关产品推荐
相关产品推荐

