![如何在 Excel 中保持小计/总计的运行?](https://linux22.com/image/1458153/%E5%A6%82%E4%BD%95%E5%9C%A8%20Excel%20%E4%B8%AD%E4%BF%9D%E6%8C%81%E5%B0%8F%E8%AE%A1%2F%E6%80%BB%E8%AE%A1%E7%9A%84%E8%BF%90%E8%A1%8C%EF%BC%9F.png)
我知道这可能是一个非常简单的问题,但我不知道如何在 Google 中表达它,所以我无法自己找到答案。我在 Excel 中有一个电子表格,基本上是一个购物清单:
Apples--------$1.00
Bananas-----$2.25
Carrots-------$1.75...
我需要知道的是如何在下一列中创建一个运行小计,它将告诉我添加每个项目后的总数。这将使电子表格现在看起来像这样:
Apples--------$1.00--------$1.00
Bananas-----$2.25--------$3.25
Carrots-------$1.75--------$5.00...
到最后,我会喜欢能够只添加新商品和价格,并让其自行计算累计小计,但我满足于它能够处理现有列表,如我所示。有什么想法可以做到这一点吗?
答案1
一个简单的方法是使用一个SUM
具有绝对起始地址但终止地址的公式,该地址随着公式的复制和系列展开而改变。
假设价格以列的形式显示B
,并且从 开始B1
,将其放置=SUM($B$1:B1)
在累计总和列的第一个单元格中。然后选择单元格,以便您看到其右下角的抓取器。抓住它并向下拖动,直到累计总和列中的条目数与商品价格列中的条目数一样多。
Excel 会自动调整公式,使其从商品价格列的顶部向下求和,直到与运行总计列中的当前单元格处于同一级别。公式中的美元符号可防止在通过拖动扩展系列时调整起始单元格,但结束单元格会自动调整,因为其地址上没有美元符号(它是相对地址)。
答案2
BenN 的出色回答可能就是我处理这个问题的方法,但这里还有另一个想法,只是为了给你一个可能在其他特定情况下起作用的结构:
假设价格在 B 列,累计总数在 C 列:=B1
在累计总数列的第一个单元格中,C1.然后放入=C1+B2
单元格C2。 这会将新值添加到之前的累计总数中。选择单元格C2这样你就可以在右下角看到小的黑色方形抓手。抓住那个方块并向下拖动,直到累计总数列中的条目数与商品价格列中的条目数一样多。(双击那个小方块也应该会自动填充。)
答案3
这是一种更复杂但可选的方法,略有不同:
ABCDE 项目 价格 金额 $2.50 总计 苹果 1.00 美元 2.5 香蕉 2.25 美元 胡萝卜 1.75 美元
D1 中的公式是=SUMPRODUCT(B2:B4;C2:C4)
您也可以
=COUNTIF(A:A;"<>")-1
添加 D2,输入# of items listed
E2(在 D2 的右侧),然后将 D1 更改为:
=SUMPRODUCT(INDIRECT("B2:"&CELL("地址";OFFSET(B2;D2-1;0)));INDIRECT("C2:"&CELL("地址";OFFSET(C2;D2-1;0))))
... 列表更新最终将变得非常简单,只需输入商品、价格和任意金额即可。
随着“商品数量...”的更新,新商品旁边的列中的价格和金额将包含在 D1 中的总和中。
怎么运行的:
COUNTIF()
D2 中的 会显示有多少行已填充;也就是说:它包括标题行,该行在末尾被从总和中“移除” -1
。
使用OFFSET()
会产生对单元格 D2 行(从 B2(和 C2)向下)的“引用”,通过“-1”调整以不包括最后一项下方的单元格。
然后引用将转换为文本,CELL()
以便可以将其附加到"B2:"
...&
使用
生成的文本字符串,INDIRECT()
将创建SUMPRODUCT()
完成其任务所需的内容。
小菜一碟,不是吗?;-)