首页 文章

使用Google表格上的ArrayFormula逐行迭代COUNTIF

提问于
浏览
3

我试图迭代一个COUNTIF公式,计算包含大于4的数字的每一行中的单元格数量 . 我正在尝试使用ArrayFormula来执行此操作,但它无法正常工作 .

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

这是公式

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

这是一个包含样本数据和公式的spreadsheet

2 回答

  • 0

    尝试在单元格K2中输入:

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

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

  • 3

    Sample File

    我发现 mmult 非常慢,可能会导致文件加载时间过长 . 我建议使用 len join (带查询)(速度未经测试):

    ={"RegexReplace-Len..."; ArrayFormula(LEN(REGEXREPLACE(TRANSPOSE(QUERY(TRANSPOSE(FILTER(--(A2:P>5),A2:A<>"")),,100500)),"[ 0]", "")))}
    

    这还是solution by JPV

    =filter(COUNTIF(IF(A2:P>5, ROW(A2:A)), ROW(A2:A)), A2:A<>"")
    

    A2:P 更改为您的范围, A2:A 更改为没有空白单元格的键列 .

相关问题