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

COUNTIF多维度(垂直/水平)查找:统计"OOO"次数求助

解决特定用户对应"OOO"次数的统计问题

嘿,我来帮你搞定这个统计需求!先理清楚你的数据结构:看起来A列是用户列表(A2=user1,A3=user2等),B1到E1都是重复的表头wk12,B2到E5是对应用户的状态值,其中user1有3个OOO,其他用户暂无数据。

下面给你两个实用的公式方案,都能精准统计目标用户的OOO次数:

方案1:用COUNTIF + INDEX/MATCH(直接定位用户行)

这个方案适合你需要单独针对某个用户统计的场景,公式逻辑是先找到目标用户所在的行,再统计该行里OOO的数量:

=COUNTIF(INDEX(B2:E5,MATCH("user1",A2:A5,0),0),"OOO")

公式拆解:

  • MATCH("user1",A2:A5,0):在A2:A5范围内精准匹配user1,返回它所在的行序号(这里是1,因为user1在A2,是该区域的第1行)
  • INDEX(B2:E5,1,0):返回B2:E5区域中第1行的所有数据(也就是user1对应的B2到E2单元格)
  • COUNTIF(..., "OOO"):统计这个行范围内OOO的出现次数,结果就是3,完全符合你的需求

如果想让用户成为动态参数(比如把目标用户写在G2单元格),只需要把公式里的"user1"换成G2即可:

=COUNTIF(INDEX(B2:E5,MATCH(G2,A2:A5,0),0),"OOO")

方案2:用SUMPRODUCT(支持多条件扩展)

如果以后需要同时匹配表头(比如表头不止wk12),或者添加其他筛选条件,SUMPRODUCT会更灵活:

=SUMPRODUCT((A2:A5="user1")*(B2:E5="OOO"))

公式拆解:

  • (A2:A5="user1"):生成一个布尔数组,用户匹配的位置为TRUE(等价于1),不匹配为FALSE(等价于0)
  • (B2:E5="OOO"):同样生成布尔数组,值为OOO的位置为1,其他为0
  • 两个数组相乘后,只有同时满足“是目标用户”且“值为OOO”的位置会得到1,SUMPRODUCT会把所有1相加,得到总次数

如果要加上表头匹配条件(比如只统计表头为wk12的列),可以扩展成:

=SUMPRODUCT((A2:A5="user1")*(B1:E1="wk12")*(B2:E5="OOO"))

这两个方案应该能解决你之前用INDEX/MATCH或SUMPRODUCT没成功的问题,大概率是之前的参数范围或者匹配逻辑没调整对~

内容的提问来源于stack exchange,提问作者B. Abear

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:36:47