【问题标题】:Excel - SUM to the end of the listExcel - SUM 到列表末尾
【发布时间】:2011-07-13 09:23:09
【问题描述】:

我在 Excel 2003 中有一个类似数据库的表,在第 6 行有一个包含 AutoFilters 的标题行,以及从第 7 行到第 160 行的数据。第 1 - 5 行是工作表标题、列组标题和我无法摆脱的指令。

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

问题:每当用户将数据添加到表的末尾时,就需要更新 SUM 和 SUBTOTAL 公式以扩大范围 - 不用说 - 大多数人都忘记了。 p>

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

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

结论

我使用 SUM(OFFSET(....)),从标题中的一个新字段中获取“高度”参数,该字段以 =COUNTA($A:$A)-1 显示“记录数”(列标题文本为 -1这也被计算在内),因为从业务上下文中可以清楚地看出,对于任何有效的数据记录,A 列中必须存在一个键值,并且不允许有空行(我至少可以培训用户那么多)-加上用户利益不仅可以看到 SUM,现在还可以看到标题冻结窗格中的 COUNT 条记录。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    好吧,我认为您可以使用 =SUM(C:C) 之类的方法对 C 列中的所有单元格求和,它会自动排除文本我尝试过它并且它有效

    【讨论】:

      【解决方案2】:

      使用 Offset()Count() 似乎是最流行的,而且我确信使用起来效率最高。

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

      就个人而言,我倾向于使用 Indirect() 很多东西。它可能会运行得更慢,但它可以工作。它可以帮助我查看正在创建的范围。不过要小心,因为范围的一部分保存在文本中,所以当您移动公式时它不会更新。那会让你绊倒。反正你来了。

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

      您可以使用 iDevlop 指出的动态范围或将 Offset()Indirect() 放在 Sum() 中,例如我刚做了。

      无论哪种方式你都要小心,因为 Indirect()Offset()Volatile Functions。通常你想避免这种情况。

      我还找到了this guy,他使用了 Index()Match(),它们不是 volatile 函数。

      编辑:

      考虑一下(因为我刚刚在我的电子表格上做过)..

      如果您知道您的数据会有合理的限制,例如 1000,您可以只使用 =SUM($X$6:$X$1000),它会跳过空白,即使是小计方法 1 或 101(平均)。

      【讨论】:

      • 如果您有任何空白单元格,则偏移量会下降,因为您从每个空白单元格的 SUMmed 范围中丢失了 1 行
      【解决方案3】:

      当然!而且我发现将总数放在顶部会更好,因为您还可以冻结第一行以保持这些总数可见。
      只需向 Google 询问“Excel 动态范围”即可。这里有几个链接:
      http://www.ozgrid.com/Excel/DynamicRanges.htm
      http://support.microsoft.com/kb/830287

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

      【讨论】:

        【解决方案4】:

        将此公式放在数据范围的最后一行(不能是表格/列表)这可能会解决您的问题

        =SUM(INDIRECT(("x6:x"&ROW()-1)))  
        

        或者如果你有表格/列表,那么你可以使用这个公式

        =sum([table header name])
        

        就像你想总结类型标题的“金额”列

        =sum([Amount]) 
        

        在列表/表格的最后一行

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-10-30
          • 1970-01-01
          • 2017-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-06
          相关资源
          最近更新 更多