【问题标题】:Sum/Count Formulas auto adjust for inserted rows总和/计数公式自动调整插入的行
【发布时间】:2016-07-21 09:09:50
【问题描述】:

希望创建一个总和和一个计数公式,该公式将自动针对插入范围内的新行进行自我调整。

例如,如果我在单元格 D55 =SUM(D17:D54) 中有公式。每次我在该范围内插入新行时,我都需要更改公式的顶部范围以解决它。

有没有办法编写一个自动调整自己的公式,这样每次我添加一个新行时就不需要更改我的求和公式?

【问题讨论】:

  • 它已经自动调整:如果您在1754 之间插入新行,您的公式(在单元格D56 中)将变为=SUM(D17:D55)
  • @pnuts,OP 说I have the formula in cell D55,你的公式=Sum(D17:D55) 不会创建循环引用吗?

标签: excel


【解决方案1】:

试试

D55: =SUM(INDIRECT("D17:D"&ROW()-1))

这应该动态调整以适应添加的行,因为在第 17 行添加行时,D17 的当前值会转移到D18,而D17 中不存在任何值。 INDIRECT() 应该考虑到这一点。 ROW()-1 确保即使在公式之前添加行时,仍然会考虑这些行。

编辑:我应该补充一点,这可以应用于任何公式。只需将公式的范围部分替换为 INDIRECT。 快速解释一下:INDIRECT 从字符串创建 Excel 引用,因此您可以使用动态对象构造公式。公式的ROW 部分充当动态因素,它完全取决于您添加的行数,但与您添加新行的位置无关。

【讨论】:

  • 这很好用,在 Excel 97 和 2000 中进行了测试。对于使用此公式的任何人,请将 "D17:D" 引用调整为您自己的起始单元格和列(例如 "G3:G")。另外,假设您在求和的数据底部和公式之间留了一个空白行,然后将-1 替换为-2。很好的答案。
  • 感谢 Alain,很高兴您喜欢我建议的解决方案!
【解决方案2】:

我认为人们有误解。您在范围的顶部插入一行是否正确?

如果是这样,我建议将范围格式化为表格。这样你的表格可能看起来像这样:

求和函数很简单:

=SUM([Data])

当在 7 上方插入一行时,所有内容都会自动更新。

【讨论】:

  • 您是否知道在哪个版本的 Excel 中添加了功能 =SUM([ColumnHeader])?这在 Excel 97 或 2000 中不起作用。这似乎也无法回答问题,因为 OPs 问题从第 17 行(不是第 2 行)开始。
【解决方案3】:

您可能想看看这个excellent link that talks about using tables to hold your ranges。这将是我的建议......将您的数据包装在表格中。这将创建一个结构化但灵活的参考。

正如这里所指出的,也是根据经验,“由于表格数据范围经常变化,结构化引用的单元格引用会自动调整。例如,如果您在公式中使用表格名称来计算表格,然后添加一行数据,单元格引用自动调整。”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多