如何根据另一列中的第一个空白行计算一列中空白单元格的数量
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), ))))
我在 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), ))))