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

求SUMIF的数组等价公式:用单个数组公式统计多状态计数

解决Excel数组公式统计多条件计数的问题

嘿,我来帮你搞定这个数组公式的问题!你之前的思路是对的,但在公式参数的顺序和维度上出了点小问题,咱们一步步来修正:

核心问题分析

你之前尝试的两个公式都有细节错误:

  1. =COUNTIF({"g","y","r"},$H$6:$H$20)COUNTIF的参数顺序搞反了!它的语法是COUNTIF(要统计的区域, 条件),你把条件数组放在了第一个参数的位置,自然会报错。
  2. =SUMPRODUCT(1*$H$6:$H$20={"g","y","r"}):这里的条件是水平数组(逗号分隔),和垂直的区域$H$6:$H$20比较后会生成一个二维数组,SUMPRODUCT会把所有元素相加,最终得到总数而非分条件的计数。

正确的数组公式方案

方案1:用COUNTIF实现(推荐,简洁直观)

不管是旧版Excel(需要数组输入)还是新版动态数组Excel,这个公式都能用:

  • 旧版Excel:先选中3个连续单元格(比如要输出结果的J6:J8),输入公式:
    =COUNTIF($H$6:$H$20,{"g","y","r"})
    
    然后按Ctrl+Shift+Enter完成数组输入(公式会自动被大括号包裹)。
  • 新版Excel(365/2021及以后):直接在单个单元格输入上面的公式,它会自动溢出到右侧/下方的3个单元格,不需要手动选中区域或按组合键。

方案2:用SUMPRODUCT实现

如果想用SUMPRODUCT,需要调整条件数组的维度为垂直方向(用分号分隔),让它和统计区域的维度匹配:

  • 选中3个单元格,输入公式:
    =SUMPRODUCT(--($H$6:$H$20={"g";"y";"r"}))
    
    同样按Ctrl+Shift+Enter完成数组输入(新版Excel可直接输入溢出)。

验证你的示例数据

对于输入序列:g、r、y、g、g、r、g、g、y

  • 两个公式都会返回5、2、2,完全符合你的预期。

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

火山引擎 最新活动