如何根据另一列中的第一空白行计算一列中的空白单元格数

时间:2019-08-09 17:21:05

标签: if-statement google-sheets count google-sheets-formula array-formulas

我在B列中设置了一个电视节目标题的电子表格,接下来的20列左右正在跟踪有关该标题的不同信息。我需要计算与列B中包含标题的范围(即,直到列B中的第一空白行)有关的列R中的空白单元格的数量。

我可以轻松地建立一个公式来计算R列中给定范围内的空单元格的数量,问题是当我在工作表中添加更多标题时,我将不得不不断更新公式中的范围[一个简单=COUNTIF(R3:R1108, "")]。我已经对问题进行了一些谷歌搜索,但还没有找到适合情况的信息。我以为我可以让以下人员工作,但我不完全了解他们的状况,他们没有给出预期的结果。

我尝试了以下公式:

=ArrayFormula(sum(MIN("B3:B"&MIN(IF((R3:R)>"",ROW(B3:B)-1)))))

=ArrayFormula(sum(INDIRECT("B3:B"&MIN(IF((R3:R)>"",ROW(B3:B)-1)))))

=if(SUM(B3:B)="","",SUM(R3:R))

以上所有公式的结果均为“ 0”。基于COUNTIF公式,我将其设置为840,这是我期望的数字。当前,在这种情况下,有1106行包含数据,而在这种情况下,840行是一个合理的数字。

2 个答案:

答案 0 :(得分:1)

这是您要找的吗?

=COUNTBLANK(INDIRECT(CONCATENATE("R",3,":R",(3+COUNTA(B3:B)))))

这将计算B列中的非空白行数(从B3开始),并以此来确定要在R列中的COUNTBLANK中执行的行(从R3开始)。 CONCATENATE是通过将字符串加在一起来给它一个范围的一种方法,而INDIRECT允许范围引用是一个字符串。

答案 1 :(得分:0)

正确的方法是:

=ARRAYFORMULA(COUNTBLANK(INDIRECT(ADDRESS(3, 18, 4)&":"&
 ADDRESS(MAX(IF(B3:B<>"", ROW(B3:B), )), 18, 4)))

0


或更短:

=ARRAYFORMULA(COUNTBLANK(INDIRECT("R3:"&
 ADDRESS(MAX(IF(B3:B<>"", ROW(B3:B), )), 18, 4))))

或更短:

=ARRAYFORMULA(COUNTBLANK(INDIRECT("R3:R"&MAX(IF(B3:B<>"", ROW(B3:B), ))))