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

How to count the number of blank cells in one column based on the first blank row in another column

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

我可以很容易地设置一个公式来计算 R 列中给定范围内的空单元格的数量,问题是当我向 sheet 添加更多标题时,我将不得不不断更新范围在公式中 [一个简单的 =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 行是一个合理的数字。

这是您要找的吗?

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

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

正确的方法是:

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


或更短:

=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), ))))