在 Excel 中,如何对当前单元格上方的所有数字求和?

在 Excel 中,如何对当前单元格上方的所有数字求和?

我希望在 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 ---- 如果你不小心写了循环公式,你将不会收到通知:((

相关内容