Excel - SUM到列表的末尾

Mik*_*keD 11 excel excel-formula

我在Excel 2003中有一个类似数据库的表,第一行包含自动筛选的单个标题行,第7行到第160行的数据.第1 - 5行是表标题,列组标题和说明我不能摆脱.

我还在数字列中显示SUM(X6:X160)SUBTOTAL(109,X6:X160)在此区域中.我不想在表的底部显示这个,因为有几个用户经常向该表添加行,并且他们会定期销毁这些公式.

问题:每当用户将数据添加到表的末尾时,就需要更新SUM和SUBTOTAL公式以扩展范围 - 不用说 - 大部分都被遗忘了.

我可以自己扩展公式以覆盖-say-行500的所有行并隐藏剩余的行,因此用户需要在到达表的可见末尾时"插入"行 - 这反过来会更新公式,但我不认为这是一种非常安全的方式...了解我的用户.

问题:有没有办法从X6" 到列X的末尾创建SUM和SUBTOTAL "?

结论

我使用SUM(OFFSET(....)),从标题中的新字段中获取"height"参数,该字段显示"记录数"a =COUNTA($A:$A)-1(-1表示列的标题文本) ,从业务环境中可以清楚地看出,A列中的任何有效数据记录都必须存在一个键值,并且不允许空白行(我可以至少训练用户) - 加上用户不仅可以看到SUM的好处但现在还有标题冻结窗格中的COUNT个记录.

小智 6

好吧,我认为你可以使用类似= SUM(C:C)的东西来汇总C列中的所有单元格,它会自动排除文本我尝试了它并且它有效


ptp*_*son 5

使用Offset()Count()似乎是最受欢迎的,我确信使用效率最高.

=SUM(OFFSET($X$6,0,0,COUNT($X$6:$X$1000)))
Run Code Online (Sandbox Code Playgroud)

就个人而言,我倾向于使用Indirect()做很多事情.它可能会运行得更慢,但它的工作原理.它帮助我看到正在创建的范围.但是要小心,因为部分范围是用文本保存的,所以当你移动公式时它不会更新.那会让你失望.无论如何,你在这里.

=SUM(INDIRECT("$X$6:$X$" & COUNT($X$6:$X$1000)))
Run Code Online (Sandbox Code Playgroud)

您可以使用iDevlop指出的动态范围,或者像我刚才那样将Offset()Indirect()放在Sum()中.

无论哪种方式,您都要小心,因为Indirect()Offset()易失性函数.通常你想避免.

我也找到了这个使用Index()Match()的人,它们不是volatile函数.

编辑:

想一想(因为我只是在我的电子表格上做过)..

如果您知道您的数据将具有合理的限制,例如1000,您可以使用=SUM($X$6:$X$1000)并且它将跳过空白,即使对于小计方法1或101(平均值).