如何在该行的第一个非空单元格之后连续计算空白

时间:2013-11-20 16:35:50

标签: excel excel-vba excel-formula excel-2010 vba

例如我有一个范围“B3:AY3”,第一个非空白单元格包含的值是“R3”,我需要计算所有空白细胞“R3”后的细胞

3 个答案:

答案 0 :(得分:0)

  

并且包含值的第一个非空白单元格是“R3”

我采用了第1行的例子。修改如适用:)

试试这个

=COUNTBLANK(INDIRECT(ADDRESS(1,MATCH(TRUE,LEN(A1:AY1)=0,0)) & ":AY1"))

输入此数组作为数组公式。即你必须按 Ctrl + Shift + 输入而不是 Enter

enter image description here

对于第3行,公式变为

=COUNTBLANK(INDIRECT(ADDRESS(3,MATCH(TRUE,LEN(A3:AY3)=0,0)) & ":AY3"))

enter image description here

答案 1 :(得分:0)

此公式必须数组输入

A3:= COUNTBLANK(OFFSET(MyRange,0,MATCH(     TRUE,LEN(MyRange)GT; 0,0)-1,1,COLUMNS(     MyRange)-match(TRUE,LEN(MyRange)GT; 0,0)+1))

其中MyRange = B3:AY3

并根据需要填写


输入后,

array-enter 一个公式 公式进入单元格或公式栏,按住 ctrl-shift ,同时点击输入。如果你这样做了 正确地说,Excel会在公式周围放置大括号{...}。

如果范围中只有空白单元格,或者该范围内有任何包含错误的单元格,则上述公式将返回错误消息。如果这是一个问题,请改为使用以下数组输入公式:

=IFERROR(COUNTBLANK(OFFSET(MyRange,0,MATCH(
TRUE,IFERROR(LEN(MyRange)>0,TRUE),0)-1,1,COLUMNS(
MyRange)-MATCH(TRUE,IFERROR(LEN(MyRange)>0,TRUE),0)+1)),COLUMNS(MyRange))

IT会将错误计为非空白,如果所有单元格都为空,则计算所有单元格。

答案 2 :(得分:0)

如果您只需要它来处理第三行,请使用以下内容:

=COUNTBLANK(B3:AY3) - (MATCH(TRUE,INDEX((B3:AY3<>0),0),0)-1)

这是一个常规公式,不需要作为数组输入,因为我没有使用任何Volatile函数(如INDIRECT和OFFSET)也应该是更好的性能。

我所做的只是计算所有空白,然后在第一个单元格之前减去所有空白值。