运行总计(也称为累积总和)在许多情况下非常常用。这是一个指标,可以告诉您到目前为止的值的总和是多少。
例如,如果您有每月的销售数据,那么运行总计将告诉您从该月的第一天到特定日期的销售量。
还有其他一些经常使用总计的情况,例如计算银行对账单/分类帐中的现金余额,计算膳食计划中的卡路里等。
在Microsoft Excel 中,有多种不同的方法来计算运行总计。
您选择的方法还取决于数据的结构。
例如,如果您有简单的表格数据,那么您可以使用简单的SUM 公式,但如果您有Excel 表格,那么最好使用结构化引用。您也可以使用Power Query 来执行此操作。
在本教程中,我将介绍所有这些在Excel 中计算运行总计的不同方法。
所以让我们开始吧!
内容
使用表格数据计算运行总计
如果您有表格数据(即Excel 中未转换为Excel 表格的表格),您可以使用一些简单的公式来计算运行总计。
使用加法运算符
假设您有按日期计算的销售数据,并且您想在 C 列中计算方式运行总计。
以下是执行此操作的步骤。
步骤 1 – 在单元格C2 中,这是您想要运行总计的第一个单元格,输入
= B2
这只会在单元格B2 中获得相同的销售值。
第2 步– 在单元格C3 中,输入以下公式:
= C2 + B3
第3 步– 将公式应用于整个列。您可以使用填充手柄来选择并拖动它,或者简单地将单元格C3 复制粘贴到所有剩余的单元格(这将自动调整参考并给出正确的结果)。
这将为您提供如下所示的结果。
这是一种非常简单的方法,在大多数情况下都可以很好地工作。
逻辑很简单——每个单元格获取它上面的值(这是到前一天的累积总和),并添加相邻单元格中的值(这是当天的销售值)。
只有一个缺点– 如果您删除此数据集中的任何现有行,则下面的所有单元格都会返回引用错误(#REF!)
如果您的数据集有这种可能性,请使用使用SUM 公式的下一个方法
将SUM 与部分锁定的单元格引用一起使用
假设您有按日期计算的销售数据,并且您想计算C 列中的运行总计。
下面是SUM 公式,它将为您提供运行总计。
= SUM($ B $ 2:B2)
让我解释一下这个公式是如何工作的。
在上面的SUM 公式中,我使用了引用添加为$B$2:B2
- $B$2 – 这是一个绝对引用,这意味着当我在下面的单元格中复制相同的公式时,这个引用不会改变。因此,在下面的单元格中复制公式时,公式将更改为SUM($B$2:B3)
- B2 – 这是参考的第二部分,它是相对参考,这意味着当我向下或向右复制公式时,这会调整。所以在复制下面单元格中的公式时,这个值会变成B3
这种方法的好处是,如果您删除数据集中的任何行,这个公式会调整并仍然为您提供正确的运行总计。
在Excel 表中计算运行总计
在Excel 中处理表格数据时,最好将其转换为Excel 表格。它使管理数据变得更加容易,并且还可以轻松使用Power Query 和Power Pivot 等工具。
使用Excel 表格会带来一些好处,例如结构化引用(这使得引用表格中的数据并在公式中使用它变得非常容易),以及在您从表格中添加或删除数据的情况下自动调整引用。
虽然您仍然可以使用我在Excel 表格中向您展示的上述公式,但让我向您展示一些更好的方法来做到这一点。
假设您有一个如下所示的Excel 表格,并且您想要计算C 列中的运行总计。
下面是执行此操作的公式:
=SUM(SalesData[[#Headers],[Sale]]:[@Sale])
上面的公式可能看起来有点长,但你不必自己写。您在求和公式中看到的内容称为结构化引用,这是Excel 引用Excel 表中特定数据点的有效方法。
例如,SalesData[[#Headers],[Sale]] 指的是SalesData表中的Sale表头(SalesData是我创建表时给的Excel表的名称)
而[@Sale] 指的是Sale 列中同一行的单元格中的值。
我只是在这里解释了这一点以供您理解,但即使您对结构化引用一无所知,您仍然可以轻松创建此公式。
以下是执行此操作的步骤:
- 在单元格C2 中,输入=SUM(
- 选择单元格B1,它是具有销售价值的列的标题。您可以使用鼠标或使用箭头键。您会注意到Excel 会自动输入该单元格的结构化引用
- 添加:(冒号)
- 选择单元格B2。Excel 将再次自动插入单元格的结构化引用
- 关闭括号并按Enter
您还会注意到,您不必复制整个列中的公式,Excel 表格会自动为您完成。
这种方法的另一个好处是,如果您在这个数据集中添加一条新记录,Excel 表格会自动计算所有新记录的运行总计。
虽然我们在公式中包含了列的标题,但请记住,公式会忽略标题文本而只考虑列中的数据
使用Power Query 计算运行总计
在连接数据库、从多个来源提取数据以及在将其放入Excel 之前对其进行转换时,Power Query 是一个了不起的工具。
如果您已经在使用Power Query,则在Power Query 编辑器本身中转换数据时添加运行总计会更有效(而不是首先在Excel 中获取数据,然后使用上述任何方法添加运行总计上述方法)。
虽然Power Query 中没有内置功能来添加运行总计(我希望有),但您仍然可以使用简单的公式来做到这一点。
假设您有一个如下所示的Excel 表格,并且您希望将运行总计添加到此数据中:
以下是执行此操作的步骤:
- 选择Excel 表格中的任何单元格
- 点击数据
- 在Get & Transform 选项卡中,单击from Table/Range 图标。这将在Power Query 编辑器中打开表
- [可选] 如果您的日期列尚未排序,请单击日期列中的过滤器图标,然后单击升序排序
- 单击Power Query 编辑器中的添加列选项卡
- 在General 组中,单击Index Column 下拉菜单(不要单击Index Column 图标,而是单击它旁边的黑色小倾斜箭头以显示更多选项)
- 单击“从1”选项。这样做将添加一个新的索引列,该列将从1 开始,并在整个列中输入以1 递增的数字
- 单击“自定义列”图标(也在“添加列”选项卡中)
- 在打开的自定义列对话框中,输入新列的名称。在本例中,我将使用名称“Running Total”
- 在自定义列公式字段中,输入以下公式:List.Sum(List.Range(#”Added Index”[Sale],0,[Index]))
- 确保对话框底部有一个复选框,上面写着“未检测到语法错误”
- 单击确定。这将添加一个新的运行总计列
- 删除索引列
- 单击“文件”选项卡,然后单击“关闭并加载”
上述步骤将在您的工作簿中插入一个新工作表,其中包含一个包含运行总计的表格。
现在,如果您认为与以前使用简单公式的方法相比,这些步骤太多了,那么您是对的。
如果您已经有一个数据集并且您需要做的只是添加运行总计,那么最好不要使用Power Query。
在您必须从数据库中提取数据或组合来自多个不同工作簿的数据并且在此过程中还向其中添加运行总计的情况下,使用Power Query 是有意义的。
此外,一旦您使用Power Query 执行此自动化操作,下次您的数据集更改时,您不必再次执行此操作,您只需刷新查询,它会根据新数据集为您提供结果。
这是如何运作的?
现在让我快速解释一下这种方法会发生什么。
我们在Power Query 编辑器中做的第一件事是插入一个索引列,该索引列从1 开始,并随着它沿单元格向下递增而递增。
我们这样做是因为我们需要在计算在下一步插入的另一列中的运行总计时使用此列。
然后我们插入一个自定义列并使用以下公式
List.Sum(List.Range(#"Added Index"[Sale],0,[Index]))
这是一个List.Sum 公式,它将为您提供其中指定的范围的总和。
该范围是使用List.Range 函数指定的。
List.Range 函数将sale 列中的指定范围作为输出,并且该范围根据Index 值变化。例如,对于第一条记录,范围就是第一个销售价值。当你沿着细胞往下走时,这个范围会扩大。
所以,对于第一个单元格。List.Sum 只会给你第一个销售价值的总和,对于第二个单元格,它会给你前两个销售价值的总和,依此类推。
虽然这种方法效果很好,但对于大型数据集(数千行)会变得非常慢。
根据标准计算运行总计
到目前为止,我们已经看到了计算列中所有值的运行总计的示例。
但在某些情况下,您可能想要计算特定记录的运行总计。
例如,下面我有一个数据集,我想在两个不同的列中分别计算打印机和扫描仪的运行总数。
这可以使用SUMIF 公式来完成,该公式在确保满足指定条件的同时计算运行总计。
下面是对打印机列执行此操作的公式:
=SUMIF($C$2:C2,$D$1,$B$2:B2)
同样,要计算扫描仪的运行总数,请使用以下公式:
=SUMIF($C$2:C2,$E$1,$B$2:B2)
在上面的公式中,我使用了SUMIF,它会在满足指定条件时给我一个范围内的总和。
该公式采用三个参数:
- 范围:这是将根据指定条件检查的条件范围
- 标准:这是仅在满足此标准时才检查的标准,然后将添加第三个参数中的值,即总和范围
- [sum_range]:这是在满足条件时添加值的总和范围
另外,在范围和总和范围参数中,我已经锁定了引用的第二部分,这样当我们向下移动单元格时,范围会不断扩大。这允许我们只考虑和添加直到该范围的值(因此运行总计)。
在这个公式中,我使用标题列(打印机和扫描仪)作为标准。如果您的列标题与标准文本不完全相同,您还可以对标准进行硬编码。
如果您需要检查多个条件,则可以使用SUMIFS 公式。
在数据透视表中运行总计
如果您想在数据透视表结果中添加运行总计,您可以使用数据透视表中的内置功能轻松完成此操作。
假设您有一个如下所示的数据透视表,其中一列中有日期,另一列中有销售价值。
以下是添加一个附加列的步骤,该列将按日期显示销售的累计:
- 拖动Sale 字段并将其放在Value 区域中。
- 这将添加另一个包含销售值的列
- 单击价值区域中的销售总额2 选项
- 单击“值字段设置”选项
- 在“值字段设置”对话框中,将“自定义名称”更改为“运行总计”
- 单击“将值显示为”选项卡
- 在将值显示为下拉菜单中,选择“Running Total in”选项
- 在基本字段选项中,确保选择日期
- 点击确定
上述步骤会将第二个销售列更改为“运行总计”列。
因此,这些是您可以用来在Excel 中计算运行总计的一些方法。如果您有表格格式的数据,则可以使用简单的公式,如果您有Excel 表格,则可以使用利用结构化引用的公式。
我还介绍了如何使用Power Query 和数据透视表计算运行总计。
我希望您发现本教程很有用。