在 Google 个工作表上使用 ArrayFormula 逐行迭代 COUNTIF
iterate row by row COUNTIF using ArrayFormula on Google Sheets
我正在尝试迭代计算每行中包含大于 4 的数字的单元格数量的 COUNTIF 公式。我正在尝试使用 ArrayFormula 来执行此操作,但它不起作用。
不幸的是,它计算了整个范围内符合条件的所有单元格 B2:G39,导致在 K 列的每一行中输入 26,而不是逐行计数,即 [=22 中的单元格数 >4 =] 在 K2 中输入,在 B3:G3 中输入的单元格数 >4 在 K3
中输入
这是公式
=ARRAY_CONSTRAIN(arrayformula( if( row(H:H)=1, "Number of cells >4",COUNTIF(A2:G39,">4"))),39,1)
这是一个 spreadsheet,其中包含示例数据和我的公式
尝试在单元格 K2 中输入:
=ARRAYFORMULA(IF(ISBLANK(A2:A),IFERROR(1/0),MMULT(SIGN(A2:G>4),SIGN(TRANSPOSE(A2:G2)))))
通过将数据放入矩阵形式,您可以将 MMULT and SIGN 函数与 ARRAYFORMULA 结合使用,以实现对要查找的行的条件计数。
我发现mmult
速度很慢,可能会导致您的文件加载时间过长。我建议改用 len
+ join
(带查询)(速度未测试):
={"RegexReplace-Len..."; ArrayFormula(LEN(REGEXREPLACE(TRANSPOSE(QUERY(TRANSPOSE(FILTER(--(A2:P>5),A2:A<>"")),,100500)),"[ 0]", "")))}
还有一个:
=filter(COUNTIF(IF(A2:P>5, ROW(A2:A)), ROW(A2:A)), A2:A<>"")
将 A2:P
更改为您的范围,将 A2:A
更改为没有空白单元格的关键列。
我正在尝试迭代计算每行中包含大于 4 的数字的单元格数量的 COUNTIF 公式。我正在尝试使用 ArrayFormula 来执行此操作,但它不起作用。
不幸的是,它计算了整个范围内符合条件的所有单元格 B2:G39,导致在 K 列的每一行中输入 26,而不是逐行计数,即 [=22 中的单元格数 >4 =] 在 K2 中输入,在 B3:G3 中输入的单元格数 >4 在 K3
中输入这是公式
=ARRAY_CONSTRAIN(arrayformula( if( row(H:H)=1, "Number of cells >4",COUNTIF(A2:G39,">4"))),39,1)
这是一个 spreadsheet,其中包含示例数据和我的公式
尝试在单元格 K2 中输入:
=ARRAYFORMULA(IF(ISBLANK(A2:A),IFERROR(1/0),MMULT(SIGN(A2:G>4),SIGN(TRANSPOSE(A2:G2)))))
通过将数据放入矩阵形式,您可以将 MMULT and SIGN 函数与 ARRAYFORMULA 结合使用,以实现对要查找的行的条件计数。
我发现mmult
速度很慢,可能会导致您的文件加载时间过长。我建议改用 len
+ join
(带查询)(速度未测试):
={"RegexReplace-Len..."; ArrayFormula(LEN(REGEXREPLACE(TRANSPOSE(QUERY(TRANSPOSE(FILTER(--(A2:P>5),A2:A<>"")),,100500)),"[ 0]", "")))}
还有一个
=filter(COUNTIF(IF(A2:P>5, ROW(A2:A)), ROW(A2:A)), A2:A<>"")
将 A2:P
更改为您的范围,将 A2:A
更改为没有空白单元格的关键列。