使用 Google Sheets 上的 ArrayFormula 逐行迭代 COUNTIF

her*_*ian 6 spreadsheet countif google-sheets array-formulas

我正在尝试迭代一个 COUNTIF 公式,该公式计算每行中包含大于 4 的数字的单元格数。我正在尝试使用 ArrayFormula 来执行此操作,但它不起作用。

不幸的是,它计算了整个范围 B2:G39 中与条件匹配的所有单元格,导致在 K 列的每一行中输入 26 个,而不是逐行计数,即在 B2:G2 中输入的单元格数 > 4 在 K2 中输入的单元格数>4 B3:G3 进入K3

这是公式

=ARRAY_CONSTRAIN(arrayformula( if( row(H:H)=1, "Number of cells >4",COUNTIF(A2:G39,">4"))),39,1)
Run Code Online (Sandbox Code Playgroud)

这是一个包含示例数据和我的公式的电子表格

Gre*_*reg 5

尝试在单元格 K2 中输入:

=ARRAYFORMULA(IF(ISBLANK(A2:A),IFERROR(1/0),MMULT(SIGN(A2:G>4),SIGN(TRANSPOSE(A2:G2)))))
Run Code Online (Sandbox Code Playgroud)

通过将您的数据放入矩阵形式,您可以将MMULTSIGN函数与 ARRAYFORMULA 一起使用来实现您正在查找的行的条件计数。

  • 我的荣幸,@herteladrian。为了便于讨论,您的公式被简化为 `=arrayformula(COUNTIF(A2:G39,">4"))`,它不起作用,因为范围参数 `A2:G39` 被 COUNTIF 函数“征用”并使用在其计算中,返回一个不是数组的结果。换句话说,ARRAYFORMULA 永远不会看到输入范围,因此它没有机会替代它。这就是 ARRAYFORMULA 也不适用于 AND 和 OR 函数的原因。 (4认同)