Excel中计算累计总数的所有不同方法

Excel 中计算累计总数的所有不同方法

累计总数(也称为累计和)在许多情况下非常常用。它是一种度量,可以告诉您到目前为止值的总和是多少。

例如,如果您有月度销售数据,那么累计总数将告诉您从该月第一天到某一特定日期的销售量。

还有一些其他经常使用累计的情况,例如计算银行对账单/分类账中的现金余额、计算膳食计划中的卡路里等。

在 Microsoft Excel 中,有多种不同的方法来计算累计总数。

您选择的方法还取决于您的数据的结构。

例如,如果您有简单的表格数据,那么您可以使用简单的 SUM 公式,但如果您有 Excel 表,那么最好使用结构化引用。您也可以使用 Power Query 来执行此操作。

在本教程中,我将介绍在 Excel 中计算累计总数的所有不同方法。

推荐:在Microsoft Excel中插入数据透视表的8种方法

使用表格数据计算累计总数

如果您有表格数据(即未转换为 Excel 表的 Excel 表),则可以使用一些简单的公式来计算累计总数。

使用加法运算符

假设您有按日期分类的销售数据,并且想要计算 C 列中的累计总计。

 Excel 中计算累计总数的所有不同方法

下面是执行此操作的步骤。

步骤 1 – 在单元格 C2(即需要显示累计总数的第一个单元格)中输入

=B2

这只会在单元格 B2 中获得相同的销售价值。

在第一个单元格中输入 B2

步骤 2 – 在单元格 C3 中输入以下公式:

=C2+B3
在单元格 C3 中输入另一个公式

步骤 3 – 将公式应用于整个列。您可以使用填充柄选择并拖动它,或者简单地将单元格 C3 复制粘贴到所有剩余单元格(这将自动调整引用并给出正确的结果)。

这将为您提供如下所示的结果。

将公式应用于整个列

这是一个非常简单的方法,并且在大多数情况下都很有效。

逻辑很简单——每个单元格选取其上方的值(即截至前一天累计的总和)并将其相邻单元格中的值(即当天的销售价值)相加。

只有一个缺点 – 如果您删除此数据集中的任何现有行,则下面的所有单元格都会返回引用错误(#REF!)

删除行时发生 Ref 错误

如果您的数据集存在这种情况,请使用下一种方法,即使用 SUM 公式

另请阅读:Excel 中的加权平均值

使用带有部分锁定单元格引用的 SUM

假设您有按日期分类的销售数据,并且想要计算 C 列中的累计总计。

累计的日期数据

以下是可以给出累计总数的 SUM 公式。

=SUM($B$2:B2)
SUM 公式计算累计总数

让我解释一下这个公式是如何工作的。

在上面的 SUM 公式中,我使用了引用作为 $B$2:B2

  • $B$2 – 这是绝对引用,这意味着当我在下面的单元格中复制相同的公式时,此引用不会改变。因此,当在下面的单元格中复制公式时,公式将更改为 SUM($B$2:B3)
  • B2 – 这是引用的第二部分,是相对引用,这意味着当我向下或向右复制公式时,它会进行调整。因此,当在下面的单元格中复制公式时,该值将变为 B3
另请阅读:Excel 中的绝对、相对和混合单元格引用

此方法的优点在于,如果您删除数据集中的任何行,此公式都会进行调整并仍然为您提供正确的运行总数。

计算 Excel 表中的累计总数

在 Excel 中处理表格数据时,最好将其转换为 Excel 表。这样可以更轻松地管理数据,还可以更轻松地使用 Power Query 和 Power Pivot 等工具。

使用 Excel 表格具有诸多好处,例如结构化引用(这使得引用表格中的数据并在公式中使用它变得非常容易),以及在添加或删除表格中的数据时自动调整引用。

虽然您仍然可以使用我在 Excel 表中向您展示的上述公式,但让我向您展示一些更好的方法来执行此操作。

假设您有一个如下所示的 Excel 表,并且您想要计算 C 列中的累计总数。

计算 Excel 表格中的累计总数

以下是实现此目的的公式:

=SUM(销售数据[[#标题],[销售]]:[@销售])
Excel 表格公式计算累计总数

上述公式可能看起来有点长,但您不必自己编写。您在求和公式中看到的内容称为结构化引用,这是 Excel 引用 Excel 表中特定数据点的有效方法。

例如SalesData[[#Headers],[Sale]]指的是SalesData表中的Sale表头(SalesData是我在建表时给的Excel表名)

而[@Sale]指的是Sale列同一行单元格中的值。

我只是在这里解释这一点以便您理解,但即使您对结构化引用一无所知,您仍然可以轻松地创建这个公式。

以下是执行此操作的步骤:

  1. 在单元格 C2 中输入 =SUM(
  2. 选择单元格 B1,即包含销售值的列的标题。您可以使用鼠标或使用箭头键。您会注意到 Excel 会自动输入该单元格的结构化引用
  3. 添加 :(冒号符号)
  4. 选择单元格 B2。Excel 将再次自动插入单元格的结构化引用
  5. 关闭括号并按回车键

您还会注意到,您不必复制整个列中的公式,Excel 表会自动为您完成此操作。

此方法的另一个优点是,如果您在此数据集中添加新记录,Excel 表将自动计算所有新记录的累计总数。

虽然我们在公式中包含了列标题,但请记住,公式将忽略标题文本,仅考虑列中的数据

推荐:如何在Excel中计算百分位数

使用 Power Query 计算累计总数

在连接数据库、从多个来源提取数据以及在将其放入 Excel 之前进行转换时,Power Query 是一个非常棒的工具。

如果您已经在使用 Power Query,那么在 Power Query 编辑器中转换数据时添加运行总计会更有效率(而不是先在 Excel 中获取数据,然后使用上面介绍的任何方法添加运行总计)。

虽然 Power Query 中没有内置添加运行总计的功能(我希望有),但您仍然可以使用简单的公式来做到这一点。

假设您有一个如下所示的 Excel 表,并且您想要将累计总数添加到此数据中:

使用 Power Query 进行累计的数据集

以下是执行此操作的步骤:

  1. 选择 Excel 表中的任意单元格
  2. 点击数据单击数据选项卡单击数据选项卡
  3. 在“获取和转换”选项卡中,单击“来自表/范围”图标。这将在 Power Query 编辑器中打开表单击“从表格范围”
  4. [可选] 如果“日期”列尚未排序,请单击“日期”列中的过滤器图标,然后单击“升序排序”如果尚未按升序对日期进行排序
  5. 单击 Power Query 编辑器中的“添加列”选项卡点击“添加列”选项卡
  6. 在常规组中,单击索引列下拉菜单(不要单击索引列图标,而是单击旁边的小黑色倾斜箭头以显示更多选项)
  7. 点击“从 1 开始”选项。这样做将添加一个新的索引列,该列从 1 开始,并在整个列中输入以 1 递增的数字在下拉菜单中单击“从 1”
  8. 单击“自定义列”图标(也位于“添加列”选项卡中)点击自定义列
  9. 在打开的自定义列对话框中,输入新列的名称。在此示例中,我将使用名称“Running Total”输入列的新名称
  10. 在自定义列公式字段中,输入以下公式:List.Sum(List.Range(#”Added Index”[Sale],0,[Index]))
  11. 确保对话框底部有一个复选框,上面写着“未检测到语法错误”未检测到语法错误
  12. 点击“确定”。这将添加一个新的累计总计列
  13. 删除索引列删除 INDEX 列
  14. 单击“文件”选项卡,然后单击“关闭并加载”单击“关闭并加载”

上述步骤将在您的工作簿中插入一个新工作表,其中包含累计总数的表格。

Power Query 的累计结果

现在,如果您认为与以前使用简单公式的方法相比,这些步骤太多了,那么您是对的。

如果您已经有数据集并且您需要做的只是添加运行总数,那么最好不要使用 Power Query。

使用 Power Query 很有意义,因为您必须从数据库中提取数据或合并来自多个不同工作簿的数据,并且在此过程中还要向其中添加运行总计。

此外,一旦您使用 Power Query 完成此自动化操作,下次您的数据集发生变化时,您不必再次执行此操作,您只需刷新查询即可,它会根据新的数据集为您提供结果。

这是如何运作的?

现在让我快速解释一下这个方法中发生了什么。

我们在 Power Query 编辑器中做的第一件事是插入一个索引列,该索引列从一开始,并且随着单元格向下移动而以一为增量。

我们这样做是因为我们需要使用此列,同时计算在下一步中插入的另一列的累计总数。

然后我们插入自定义列并使用以下公式

List.Sum(List.Range(#"已添加索引"[销售],0,[索引]))

这是一个 List.Sum 公式,它可以给出其中指定范围的总和。

该范围是使用 List.Range 函数指定的。

List.Range 函数将销售列中的指定范围作为输出,并且此范围根据 Index 值而变化。例如,对于第一条记录,范围将只是第一个销售值。随着您向下移动单元格,此范围将扩大。

因此,对于第一个单元格,List.Sum 只会返回第一个销售值的总和,而对于第二个单元格,它将返回前两个销售值的总和,依此类推。虽然这种方法效果很好,但对于大型数据集(数千行)来说,速度会非常慢。如果您正在处理大型数据集并想向其中添加运行总计,

请查看本教程,其中介绍了其他更快的方法。

推荐:如何查看谁在使用你的Netflix、Spotify账户

根据条件计算累计总数

到目前为止,我们已经看到了计算一列中所有值的累计总数的例子。

但在某些情况下您可能想要计算特定记录的累计总数。

例如,下面我有一组数据集,我想在两个不同的列中分别计算打印机和扫描仪的累计总数。

根据条件累计的数据集

这可以使用 SUMIF 公式来完成,该公式计算累计总数,同时确保满足指定的条件。

以下是针对打印机列执行此操作的公式:

=SUMIF($C$2:C2,$D$1,$B$2:B2)
仅适用于打印机的累计总数

类似地,要计算扫描仪的累计总数,请使用以下公式:

=SUMIF($C$2:C2,$E$1,$B$2:B2)
仅适用于扫描仪的累计总数

在上面的公式中,我使用了 SUMIF,当满足指定的条件时,它会给出一定范围内的总和。

该公式采用三个参数:

  1. 范围:这是根据指定条件进行检查的条件范围
  2. 标准:这是仅当满足此标准时才会检查的标准,然后会添加第三个参数中的值,即总和范围
  3. [sum_range]:这是满足条件时将添加值的总和范围

此外,在rangesum_range参数中,我锁定了引用的第二部分,这样当我们向下移动单元格时,范围就会不断扩大。这样我们就可以只考虑并添加该范围内的值(因此可以计算总和)。

在这个公式中,我使用标题列(打印机和扫描仪)作为条件。如果列标题与条件文本不完全相同,您也可以对条件进行硬编码。

如果您需要检查多个条件,那么您可以使用 SUMIFS 公式。

数据透视表中的累计

如果您想在数据透视表结果中添加运行总计,您可以使用数据透视表中的内置功能轻松完成。

假设您有一个如下所示的数据透视表,其中一列是日期,另一列是销售价值。

数据透视表在哪里创建累计总计

以下是添加附加列以显示按日期累计销售总额的步骤:

  1. 将销售额字段拖放到值区域。再次将 sale 拖到价值区域
  2. 这将添加另一列,其中包含销售值点击销售总额 2
  3. 单击“值”区域中的“Sum of Sale2”选项
  4. 点击“值字段设置”选项点击值字段设置
  5. 在“值字段设置”对话框中,将“自定义名称”更改为“累计总计”添加自定义名称
  6. 点击“将值显示为”标签选择将值显示为选项卡
  7. 在“显示值为”下拉菜单中,选择“累计总数”选项从下拉菜单中单击“累计”从下拉菜单中单击“累计”
  8. 在“基本字段”选项中,确保已选择“日期”
  9. 单击“确定”

上述步骤将把第二个销售额列更改为累计总计列。

在数据透视表中添加了累计总数

这些就是在 Excel 中计算累计总数的一些方法。如果您有表格格式的数据,则可以使用简单公式;如果您有 Excel 表格,则可以使用利用结构化引用的公式。

我还介绍了如何使用 Power Query 和数据透视表计算累计总数。

我希望您发现本教程很有用。

推荐:轻量级WooCommerce主题Merchandiser


发表评论