是否有一个Excel公式,给定的结束单元格,返回一个数据块的起始单元格?

列A中的数据看起来像这样。

RowHeaderThatIsText
RowHeaderThatIsNumber





14.00
-3.00
-4.00

项目的目标是计算一系列数字的汇总统计数据并每月更新汇总。
我的目标是允许将新号码添加到系列中并自动进行摘要更新。

这是我迄今为止所做的。

  1. 用公式定义一个名为LastCell的范围
    =INDEX($A:$A, MAX(($A:$A <> "") * (ROW($A:$A))))
    这将返回列中最后一个非空单元格。 总结的数据总是最后一个数字块。

  2. 用公式定义一个名为HeaderOffset的命名区域
    =3
    在步骤3中使用。

  3. 用公式定义一个名为FirstCell的范围
    =OFFSET(LastCell, HeaderOffset - COUNTA($A:$A), 0)
    这将返回最后一个数据块的第一个单元格,就像我将要总结的数据一样,第一个和最后一个块之间的单元格是空的。

  4. 用公式定义一个名为DataBlock的范围
    =FirstCell:LastCell

到现在为止还挺好。 这允许input= SUM(DataBlock)到任何单元格,并获得预期的结果7.00。 而且,如果我将另一个值(比如3.00)添加到列表中,则SUM结果将更新为10。

我不喜欢的部分是HeaderOffset。 如果另一行被添加到标题中,HeaderOffset需要从= 3更新为= 4。 如果我忘记更新HeaderOffset会怎么样? 这导致我目前无法解决的问题…

有一个Excel公式,给定的结束单元格,返回一个数据块的起始单元格? 基本上,我正在寻找一个FirstCell公式,无需HeaderOffset。

作为一个奖励,我试图做到这一点,而不使用易变的Excelfunction 。 我失败了使用OFFSET。 解决这个问题非常好。 解决这个问题没有volatilefunction是理想的。

FirstCell总是第一个号码? 如果是这样,尝试这个来定义FirstCell

=INDEX($A:$A,MATCH(TRUE,ISNUMBER($A:$A),0))

如果在工作表中input了这个“数组公式”,如果在“指向:”框中使用,则不需要任何特殊处理来定义命名范围。

注意:如果你的最终目的是数字的总和,那么你可以使用=SUM(A:A) [我认为这是简单的问题?]

修改如下评论:

试试这个LastCell

=INDEX($A:$A,MATCH(9.99E+307,$A:$A))

而这一个为FirstCell

=INDEX($A:$A,MATCH(2,1/($A$1:LastCell=""))+1)

假设LastCell是数字(尽pipe如果需要可以更改)