Excel – SUM列表的末尾

我在Excel 2003中有一个类似于数据库的表格,第6行中包含一个标题行,第7行中包含自动filter,第6行中的数据是第160行。第1-5行是工作表标题,列组标题和指令,我不能摆脱。

我也在这个区域显示SUM(X6:X160)SUBTOTAL(109,X6:X160)数字列。 我不希望在表格的底部显示它,因为有多个用户经常向该表中添加行,并且定期销毁这些公式。

问题:无论何时用户将数据添加到表的末尾,都需要更新SUM和SUBTOTAL公式,以扩大范围 – 不用说 – 大部分被遗忘。

我可以自己扩展公式来覆盖所有行,直到500行,并隐藏剩余的行,所以用户需要在到达表的可见结尾时“插入”行 – 这又会更新公式,但我不认为这是一个非常安全的方式…了解我的用户。

问题:有没有一种方法可以从X6创buildSUM和SUBTOTAL到“ X列的末尾 ”?

结论

我使用了SUM(OFFSET(….)),通过a =COUNTA($A:$A)-1 (-1 =COUNTA($A:$A)-1来显示“logging数”的标题中的新字段的“height”对于列标题文本也被计算),从业务上下文中可以清楚地看出,对于任何有效的数据logging,A列中必须存在一个键值,并且不允许空行(我至less可以训练用户) – 加上用户不仅可以看到SUM,而且可以在头部冻结窗格中loggingCOUNT条logging。

使用偏移()计数()似乎是最stream行的,我敢肯定最高效的使用。

 =SUM(OFFSET($X$6,0,0,COUNT($X$6:$X$1000))) 

就个人而言,我倾向于使用间接()很多东西。 它可能会运行较慢,但它的工作原理。 这有助于我看到正在创build的范围。 尽pipe如此,由于范围的一部分是以文本forms存在的,所以在移动公式时不会更新。 那可能会让你失望 无论如何你在这里

 =SUM(INDIRECT("$X$6:$X$" & COUNT($X$6:$X$1000))) 

您可以使用iDevlop指出的dynamic范围,或像我刚才那样在Sum()中放置Offset()Indirect()

无论哪种方式,你要小心,因为间接()偏移()是易失性函数 。 通常你想避免的是

我也发现了这个使用Index()Match()的人 ,他们不是易失性函数。

编辑:

想到这个(因为我只是在我的电子表格上做的)..

假如你知道你的数据将有一个合理的限制,比如1000,你可以使用=SUM($X$6:$X$1000) ,即使对于小计方法1或者101(平均值),它也会跳过空格。

那么我认为你可以使用像= SUM(C:C)的东西来总结列C中的所有单元格,它会自动排除文本我试过了,它的工作

当然! 而且我觉得把总数放在最上面好得多,因为你也可以冻结第一行来保持这些总数可见。
只要问Google“Exceldynamic范围”。 这里有几个链接:
http://www.ozgrid.com/Excel/DynamicRanges.htm
http://support.microsoft.com/kb/830287

这一切都是通过Offset()和Count()函数的组合来完成的。