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

Google Sheets中ArrayFormula与COUNTIF组合使用失效问题排查求助

解决Google Sheets中ArrayFormula+COUNTIF批量统计的问题

你的公式没法正常工作,核心问题是OFFSET的写法没办法让ArrayFormula自动迭代到每一行,而且COUNTIF和ArrayFormula的搭配逻辑在这里没走对。咱们一步步来解决:

原公式的问题分析

你写的ArrayFormula(COUNTIF(OFFSET(M2:M;0;0;1;15);"Benar"))里,OFFSET(M2:M;0;0;1;15)其实只指定了M2到X2这一行的15个单元格(OFFSET参数是「起始区域,行偏移,列偏移,高度,宽度」,这里高度设为1,所以只取第一行)。ArrayFormula没法自动把这个范围向下移动到每一行,最终只会返回M2:X2里"Benar"的数量,没法批量处理所有行。

两种可行的批量统计方案

假设你要统计每一行从M列到X列(共15列)中"Benar"的数量,这两个方法都能实现:

方法1:用BYROW(推荐,可读性强)

Google Sheets现在支持BYROW函数,可以直接遍历每一行并执行统计:

=BYROW(M2:X, LAMBDA(row, COUNTIF(row, "Benar")))
  • 原理:BYROW会把M2:X区域的每一行单独传入LAMBDA函数,COUNTIF(row, "Benar")负责统计当前行里"Benar"的数量,最后自动返回所有行的结果。

方法2:用MMULT(兼容旧版本)

如果你的Sheet版本不支持BYROW,可以用MMULT做矩阵求和:

=ArrayFormula(MMULT(--(M2:X="Benar"), SEQUENCE(COLUMNS(M2:X),1,1,0)))
  • 原理:--(M2:X="Benar")把区域里等于"Benar"的单元格转换成1,其他转换成0;SEQUENCE(COLUMNS(M2:X),1,1,0)生成一个和列数相同的全1列向量;MMULT把两个矩阵相乘,最终得到每行的1的总和,也就是"Benar"的数量。

这两个公式都能一次性处理所有行,满足你10个类似统计需求的批量处理要求,直接替换对应的列范围即可。

内容的提问来源于stack exchange,提问作者Tunggul Permono Wicaksono

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:42:37