计算数值直到第一个空单元格

8
我需要的是如何计算一列中尽可能多的值,但我希望当它遇到第一个空单元格时停止计数。我尝试在不使用应用脚本的情况下完成此操作。
举个例子:
1
2
312
EMPTY
3123

如果我简单地使用COUNTA()函数,它会返回4,而需要返回3。 有什么建议吗?

1个回答

14
如果您的“空”单元格确实是空白的,那么您可以使用以下公式:
=ArrayFormula(match(TRUE,ISBLANK(A1:A13),0)-1)
(只要每组“年份”之间始终有一个空行)
  • ISBLANK(A1:A13)返回数组结果{FALSE,FALSE,FALSE,TRUE,FALSE,...}
  • match()返回该列表中第一个TRUE的位置或行号:4
  • 然后我们减去1,用于表示空行
  • 我们必须将整个公式作为数组公式运行,因为我们需要ISBLANK()逐个处理每个单元格。
如果它们包含文本“EMPTY”,则使用:
=ArrayFormula(match(TRUE,if(A1:A13="EMPTY",TRUE,FALSE),0)-1)

对于那些不熟悉数组公式的人,提醒一下:删除 ArrayFormula() 并按 CTRL+SHIFT+ENTER。因此,最终公式为:=match(TRUE,if(A1:A13="EMPTY",TRUE,FALSE),0)-1。 - Andrea M
2
这适用于Google表格和Excel,但问题特别指的是Google表格,它将接受一个输入的数组公式(就像我的答案中一样),只需按回车键确认即可。 - user3616725
2
假设任意选择的13行实际上代表所有行,使用A:A来获取整个列。 此外,除了Excel功能之外,Google表格还支持引用整个列(或行)从偏移量开始。例如,A6:A(或B5:5)。对我来说,这是使其与Excel不同的杀手级特性 - Elaskanator
整个列也可以这样做吗?似乎只适用于您大致知道行数的情况。 - Eric Burel
@EricBurel 没有理由不能:您可以直接使用=ArrayFormula(match(TRUE,ISBLANK(A:A),0)-1)来处理整列。或者,仅从特定单元格开始,但要到该列的末尾:=ArrayFormula(match(TRUE,ISBLANK(A5:A),0)-1) - user3616725

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接