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

ARRAYFORMULA中ROW函数失效:计算每行G-Z列“P”的数量

解决谷歌表格中逐行统计指定列"P"数量的问题

原公式的问题

你当前使用的公式无法正常工作,核心原因是:INDIRECT函数不支持数组迭代运算——它无法接收ROW(B:B)生成的行号数组,逐个解析为对应的行范围(比如G2:Z2、G3:Z3...),因此无法实现逐行统计的需求。

两种可行的替代方案

方案1:使用BYROW(推荐,新版谷歌表格支持)

BYROW可以直接对每行进行迭代处理,语法更直观:

=BYROW(A:A, LAMBDA(r, IF(ROW(r)=1, "P", IF(r="", "", COUNTIF(OFFSET(G1,ROW(r)-1,0,1,20), "P")))))
  • 逻辑:遍历A列的每一行r,第一行返回表头"P";若A列单元格为空则返回空;否则用OFFSET定位当前行的G-Z列(20列宽度),统计其中"P"的数量。

方案2:使用ARRAYFORMULA+MMULT(兼容旧版)

通过数组运算实现逐行求和,无需迭代函数:

=ARRAYFORMULA(IF(ROW(A:A)=1, "P", IF(A:A="", "", MMULT(--(G:Z="P"), SEQUENCE(20,1,1,0)))))
  • 逻辑:
    1. --(G:Z="P"):将G-Z列中等于"P"的单元格转为1,其余转为0,生成一个二维数组;
    2. MMULT(..., SEQUENCE(20,1,1,0)):用矩阵乘法对每行的0/1值求和,得到每行"P"的总数;
    3. 外层IF处理表头和空行的显示逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:09:58