是否有一个Excel公式,给定的结束单元格,返回一个数据块的起始单元格?
列A中的数据看起来像这样。
RowHeaderThatIsText
RowHeaderThatIsNumber
空
空
空
空
空
14.00
-3.00
-4.00
项目的目标是计算一系列数字的汇总统计数据并每月更新汇总。
我的目标是允许将新号码添加到系列中并自动进行摘要更新。
这是我迄今为止所做的。
-
用公式定义一个名为LastCell的范围
=INDEX($A:$A, MAX(($A:$A <> "") * (ROW($A:$A))))
这将返回列中最后一个非空单元格。 总结的数据总是最后一个数字块。 -
用公式定义一个名为HeaderOffset的命名区域
=3
在步骤3中使用。 -
用公式定义一个名为FirstCell的范围
=OFFSET(LastCell, HeaderOffset - COUNTA($A:$A), 0)
这将返回最后一个数据块的第一个单元格,就像我将要总结的数据一样,第一个和最后一个块之间的单元格是空的。 -
用公式定义一个名为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如果需要可以更改)