想要创建一个总和和一个计数公式,它将自动为插入范围内的新行调整自身。
例如,如果我在单元格D55 =SUM(D17:D54)
中有公式。每当我在该范围内插入新行时,我需要更改公式的顶部范围以考虑它。
有没有办法编写一个会自动调整自己的公式,这样每次添加新行时我都不需要更改求和公式?
答案 0 :(得分:8)
尝试
D55: =SUM(INDIRECT("D17:D"&ROW()-1))
这应该动态调整为添加的行,因为在第17行添加行时,D17
处的当前值会转移到D18
,D17
处不会显示任何值。 INDIRECT()
应考虑到这一点。 ROW()-1
确保即使在公式之前添加行时,仍会考虑这些行。
编辑:我应该补充一点,这可以应用于任何公式。只需使用INDIRECT
替换公式的范围部分即可。
并快速解释:INDIRECT
从字符串创建Excel引用,以便您可以使用动态对象构建公式。公式的ROW
部分充当动态因子,它完全取决于您添加的行数,但与您添加新行的位置无关。
答案 1 :(得分:1)
我认为人们是误解。您在范围的顶部插入一行是否正确?
如果是这样,我建议将范围格式化为表格。那样你的桌子就像这样:
sum函数就是:
=SUM([Data])
当在7上方插入一行时,所有内容都会自动更新。
答案 2 :(得分:0)
您可能想要查看此excellent link that talks about using tables to hold your ranges。这将是我的建议......将您的数据包装在表格中。这将创建一个结构化但灵活的参考。
正如此处所述,也来自经验,"由于表格数据范围经常变化,结构化参考的单元格引用会自动调整。例如,如果在公式中使用表名来计算表中的所有数据单元格,然后添加一行数据,则单元格引用会自动调整。"