我有一个计算总计的工作表设置。如果数据已经存在则很容易,但是如果添加新数据则不行。所以我希望能够做的是不为总和公式指定特定的结束单元格,而是在添加更多列时更新它。
如何使用=SUM(m4:m?)
答案 0 :(得分:1)
假设您需要M4中数据的总计:M10。
要制作开放式范围,您可以将下限设为“太远”:= SUM(M4:M100000)。
或者你可以将其设为= SUM(M:M) - SUM(M1:M3)
但是,当您需要使总值低于值集时,这不适用。在这种情况下,您有两种方式。
使用Excel嵌入式功能
公式看起来像他的:= SUM(M4:M10)。如果在M4和M10之间插入新行(例如,选择第5行,右键单击,插入行),则公式将自动调整为= SUM(M4:M10)。
如果要在第一行(选择第4行,右键单击,插入行)或最后一行(选择第11行,右键单击,插入行)下方插入新值,可能会出现此问题。在这些情况下,总计公式将不会被调整。
可能的解决方法:
对于“第一行以上”问题,我更喜欢在上方创建一些空行并隐藏它。在我们的例子中,我将隐藏第3行并使总计公式看起来像= SUM(M3:M10),因此,当您在第一行上方插入新行时,实际上您在表的中间插入一行,并且总计公式将进行调整。
对于“最后一行” - 在下面留空行;但在这种情况下你无法隐藏它;只是让它变成不同的颜色,并做一些评论,比如“在这条线上插入新的值”。
<强> INDEX()强>
有趣的技巧是使用INDEX()函数,它返回对数组中单元格的引用。对于我们的情况,数组可以是整个M行,也可以是索引 - 行号。
对于“第一行以上”问题,使总计公式如下= SUM(INDEX(M:M; 4):M10)。因此,计算将始终从第4行开始,即使将添加/删除某些行。
“最后一行”。假设您在M13中拥有“总计单元格”,并且您想要在M4和“总计单元格”之间获得所有值的总计。该公式可能看起来像= SUM(M4:INDEX(M:M; ROW(M13))),或者,考虑“第一行以上”情况:= SUM(INDEX(M:M; 4):INDEX(M:M; ROW(M13)))
希望这有帮助
答案 1 :(得分:0)
Sum(m4:m?)暗示您要添加更多行而不是添加列数据。 如果要自动对行数据求和,可以使用以下内容:
=SUM(OFFSET(A1;0;0;COUNT(A:A);1))
然而,这假设数据在每个单元格中是连续的,并且不允许空为0,因为它计数错误。
但是:您还可以为数据范围定义表格。如果您将数据添加到该数据范围内的列/行,它们将自动包含在调整后的公式中 - 确实非常好。
选择您的数据范围,然后选择Insert:Table。这将为您的表提供类似Table1的名称。 您的求和函数现在将调整为类似于: = SUM(表1)
现在,当您添加到范围时,表格会调整大小,并且您的功能正常工作。 使用表的好处在于,如果您在表之后立即向行/列添加数据,则会调整大小并包含该范围。如果没有桌子,这很难做到。您也可以更改表格的格式,或使格式颜色不可见,但您可能最好使用某种格式向用户显示表格的数据区域。
答案 2 :(得分:0)
您可以使用以下公式计算包含数字的最后一行:
=LOOKUP(2,1/ISNUMBER($J:$J),ROW($J:$J))
如果您在范围内有文本或空白,则此公式不会出现问题。
然后,您可以将该公式定义为定义名称
并使用公式:
=SUM(OFFSET(J4,0,0,LastRow-3))
总结范围。请注意末尾的 -3 以补偿第4行中的第一个单元格。
另一种选择是将您的范围设置为固定范围,您可以保证该范围将大于您实际使用的任何范围:
=SUM(J4:J1000)
答案 3 :(得分:0)
您可以使用counta查找最大行数。然后将其推入间接将为您提供所需的范围。
= SUM(间接(&#34; A1:A&#34;&amp; COUNTA(A1:A1000000); TRUE))
假设: