我希望在 Excel 中有一列,其中包含标题、一组数字,然后在底部显示这些数字的总和。我希望总和能够适应在总数上方插入新数字。如下所示:
Numbers
1
2
5
10
18 Total
如果我稍后在列表中间插入 10 个新数字,我希望总数自动包含它们。
我知道该SUM()
函数可以对整列求和,但如果总数也在该列中,则它会抱怨循环引用。我怎样才能只对总数以上的数字求和?
答案1
函数ROW()
和COLUMN()
将给出当前单元格的行和列。在函数中使用它们ADDRESS()
创建一个字符串,表示从当前列顶部到总计上方行的范围。然后使用函数INDIRECT()
将该字符串转换为实际范围以提供给函数SUM()
。总计单元格的公式将是:
=SUM(INDIRECT(ADDRESS(1,COLUMN())&":"&ADDRESS(ROW()-1,COLUMN())))
将其放入电子表格中的任意单元格中,它将计算出该单元格上方列中所有数字的总和。
答案2
这个答案特定于 Libre Office,但也适用于 Excel。
基本上,如果我们想明确提到要冻结的行/列,我们应该在该行/列中提及 $。
*还有一个内置算法,当您将公式复制到其他单元格时,Libre Office 将自动确定如何更改公式值。
因此,假设您必须添加所有行 G1:GN =>,其中 N 是当前行号。为此,您需要修复第一个值的行并保留其他值。因此公式将是:
=SUM(G$1:G1) -> 对于第一行,然后您可以将公式复制粘贴到其他单元格。
Libre Office 将自动将 G1 保留为第一个值,并动态地将每个单元格的第二个值更改为 G2、G3 等。
答案3
实际上,你可以用简单的方式做你想做的事=SUM()
假设您的 Excel 表具有以下设计:
\| A | B |
-+-----+-----+
1| 1 | |
2| 2 | |
3| 3 | |
4| 4 | |
5| 5 | |
6| | |
7| 15 |Total|
假设A7
是=SUM(A1:A5)
,您可以根据需要添加更多行,因为 Excel 将=SUM
相应地扩大的范围。
现在假设我选择第 2、3 和 4 行,然后插入行。结果如下:
\| A | B |
--+-----+-----+
1| 1 | |
2| | |
3| | |
4| | |
5| 2 | |
6| 3 | |
7| 4 | |
8| 5 | |
9| | |
10| 15 |Total|
A10
等于=SUM(A1:A8)
。这样,您现在可以随意插入新数字。
答案4
好的,Indirect() 是不稳定的...因此随着您的工作表变大,它只会变慢。如果它适合您,您最好使用:
=Sum($A1:A1)
当您将此公式向下拖动时,您将始终拥有从 A1 到当前(或上一个等)单元格的范围。没有易失性,非常快,简单得多!
7 年后编辑,添加一小段内容以保证非正统内容的完整性,而不是 100% 的答案!使用循环引用!因此,您在 C6 处添加 C1 到 C5,然后只需按c6 = sum(c$1:c6)-c6
Enter 选择确定(在循环引用警告处)转到文件 / 选项 / 公式 / 计算选项检查 [迭代计算] 设置 [最大迭代] = 1 现在您就完成了!
++ 不管怎样,if 都会跟着你... ++ 你可以使用循环公式!:D:D ---- 如果你不小心写了循环公式,你将不会收到通知:((