当前位置: 首页 > 知识库问答 >
问题:

使用Google Sheets上的数组公式逐行计数迭代

满和安
2023-03-14

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

不幸的是,它统计了整个范围B2:G39中所有符合条件的单元格,导致K列的每一行中输入了26个,而不是逐行计数,即单元格数

这是公式

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

这是一个电子表格,包括样本数据和我的公式。

共有2个答案

颛孙高义
2023-03-14

示例文件

我发现mmult很慢,可能会导致你的文件加载时间很长。我建议使用lenjoin(带查询)代替(不测试速度):

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

这里还有一个JPV的解决方案:

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

A2:P更改为您的范围,A2:A

苏季同
2023-03-14

尝试在单元格 K2 中输入以下内容:

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

通过将数据转换为矩阵形式,您可以将MMULT和SIGN函数与ARRAYFORMULA一起使用,以实现您要查找的行的条件计数。

 类似资料:
  • 我试图将一个基本的Countif函数转换为ArrayFunction,它是 但此函数对 范围中的每个“是”进行计数。 如何使它逐行计数,仍然是一个数组公式? 这意味着具有此功能的单元格从 C2:BE2 计数,下一个单元格从 C3:BE3 计数 另外,我不能使用符号功能,因为它只有在标准中有数字时才有效,而这个论坛中的其他帖子都有。

  • 让我们使用函数创建一个 3X4 数组,并使用nditer对它进行迭代。 输出如下: 原始数组是: [[ 0 5 10 15] [20 25 30 35] [40 45 50 55]] 修改后的数组是: 0 5 10 15 20 25 30 35 40 45 50 55 示例 2 迭代的顺序匹配数组的内容布局,而不考虑特定的排序。 这可以通过迭代上述数组的转置来看到。 import numpy

  • 我已经使用COUNTIF和VLOOKUP在多个列中创建了一个密集的公式,目前我已经对其进行了设置,以便我必须复制/粘贴每个公式。但我真的很想能够使用arrayformula为下面的每一列编写一次公式,并让它在至少1000行中呈现。写这个有窍门吗? 第一栏 第二栏 我还在这里看到了StackOverflow的帖子(在Google表格上使用ArrayPrograma逐行迭代COUNTIF),并试图模拟

  • 我已经创建了一个谷歌表单。在单个google工作表中有多个工作表(选项卡)。 我有一张名为 还有其他一些表单,如,。除仪表板外,目前还有2张其他图纸。所有两张图纸都有相同的列 我想在工作表上执行一些计算。 计算总任务数 注意:我上面的公式工作得很好,但我将有20张而不是2张。所以我的计算公式是 etc 每次有新的表格出现时,我所有的公式都会很长。 有什么简单的方法可以在谷歌表格中进行计算吗? 我们

  • 我有一个熊猫数据框,看起来像这样(它是一个相当大的) 现在我想逐行迭代,当我遍历每一行时,每一行中的的值可能会根据某些条件而改变,我需要查找另一个数据帧。 现在,我如何在迭代时更新它。尝试了一些没用的东西。 这些方法似乎都不管用。我看不到数据框中更新的值。