arrays - 数组公式中当前行中的 COUNTA (Google 表格)

标签 arrays excel count google-sheets row

我有一个具有固定列数和动态行数的 Google 工作表。

我喜欢使用 countA 来计算当前行中具有值(非空白)的字段。

我找到了formula here但不理解它,也无法让它工作。

ArrayFormula(MMULT( LEN(A1:E)>0 ; TRANSPOSE(SIGN(COLUMN(A1:E1)))))

工作表给我错误:“函数 MMULT 参数 1 需要数字值。但 'TRUE' 是 bool 值,不能强制为数字。”

最佳答案

如果将 LEN(A1:E)>0 返回的 bool 值(true 或 false)转换为数字(1 或 0),该公式应该有效,正如 Barry 已经提到的那样。通过将 LEN() 函数的输出包装在 N-function 中,可以很容易地完成此操作。或者在其前面加上“--”。因此,假设您的数据从第 2 行开始,看看这是否有效:

=ArrayFormula(MMULT( --(LEN(A2:E)>0) , TRANSPOSE(COLUMN(A2:E2)^0)))

另一种方法是使用 COUNTIF()

=ArrayFormula(COUNTIF(IF(A2:E<>"", row(A2:A),),row(A2:A)))

甚至可能组合起来也可以:

=ArrayFormula(MMULT( --(A2:E<>"") , TRANSPOSE(COLUMN(A2:E1)^0)))

如果您还想包含标题行,请尝试:

=ArrayFormula(if(row(A:A)=1, "Header", MMULT( --(LEN(A:E)>0) , TRANSPOSE(COLUMN(A1:E1)^0))))

 =ArrayFormula(if(row(A:A)=1, "Header", MMULT( --(A:E<>"") , TRANSPOSE(COLUMN(A1:E1)^0))))

=ArrayFormula(if(row(A:A)=1, "Header", COUNTIF(IF(not(isblank(A:E)), row(A:A),),row(A:A))))

编辑:(在评论中出现新问题之后)

如果您想对值求和,也可以使用 MMULT() 来实现:

=ArrayFormula(if(row(A:A)=1, "Header", MMULT(if(A1:E<>"", A1:E,0), transpose(column(A1:E1)^0))))

或使用 sumif:

=ArrayFormula(if(row(A:A)=1, "Header", sumif(IF(COLUMN(A1:E1),ROW(A1:A)),ROW(A1:A),A1:E)))

注意:如果您想将输出限制为列 A 中包含值的最后一行,请尝试:

=ArrayFormula(if(row(A:A)=1, "Header", IF(LEN(A1:A), MMULT(if(A1:E<>"", A1:E,0), transpose(column(A1:E1)^0)),)))

或者,再次使用 sumif()

=ArrayFormula(if(row(A:A)=1, "Header", if(len(A1:A), sumif(IF(COLUMN(A1:E1),ROW(A1:A)),ROW(A1:A),A1:E),)))

关于arrays - 数组公式中当前行中的 COUNTA (Google 表格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392990/

相关文章:

excel - 如果两组日期属于另一组日期

php - 使用 javascript 返回带有计数的 php 元素

php - MySQL 选择并计算日期范围 : Doesn't work crossing the month barrier

PHP 按 id 对 stdClass 对象数组进行排序

javascript - 将数字(即 5)转换为数组的长度

arrays - Rust中的耦合数组

postgresql - 在 postgresql sql 中结合计数和最大值

javascript - 在 JavaScript (nodejs) 中连接多个数组

excel - 为谷歌表格中的一个单元格创建多个下拉列表?

python - 从 pandas 数据帧的列索引获取字符串列表