在 Excel 中运行总计

方法 1. 公式

让我们从最简单的选项——公式开始热身。 如果我们有一个按日期排序的小表格作为输入,那么要在单独的列中计算运行总计,我们需要一个基本公式:

在 Excel 中运行总计

这里的主要特点是在 SUM 函数内对范围进行了棘手的固定——对范围开头的引用是绝对的(带有美元符号),而到末尾是相对的(没有美元)。 因此,当将公式复制到整个列时,我们得到一个扩展范围,我们计算的总和。

这种方法的缺点很明显:

  • 该表必须按日期排序。
  • 使用数据添加新行时,必须手动扩展公式。

方法 2. 数据透视表

这种方法稍微复杂一些,但更令人愉快。 更严重的是,让我们考虑一个更严重的问题——一张有 2000 行数据的表格,其中没有按日期列排序,但有重复(即我们可以在同一天卖出几次):

在 Excel 中运行总计

我们将原始表格转换为“智能”(动态)键盘快捷键 按Ctrl+T 或团队 主页 – 格式为表格 (首页——表格格式),然后我们使用命令在其上构建一个数据透视表 插入 - 数据透视表 (插入 - 数据透视表). 我们将日期放在摘要中的行区域,将销售的商品数量放在价值区域:

在 Excel 中运行总计

请注意,如果您的 Excel 版本不太旧,则日期会自动按年、季度和月分组。 如果您需要不同的分组(或根本不需要),则可以通过右键单击任何日期并选择命令来修复它 分组/取消分组 (分组/取消分组).

如果您想在单独的列中查看结果总计和运行总计,则将字段放入值区域是有意义的 已售楼盘 再次获得该字段的副本——我们将在其中打开运行总计的显示。 为此,请右键单击该字段并选择命令 附加计算 – 累计 (将值显示为 - 运行总计):

在 Excel 中运行总计

在那里,您还可以选择以百分比形式增加总计的选项,在下一个窗口中,您需要选择累积的字段——在我们的例子中,这是日期字段:

在 Excel 中运行总计

这种方法的优点:

  • 快速读取大量数据。
  • 无需手动输入公式。
  • 更改源数据时,只需使用鼠标右键或使用数据 - 全部刷新命令更新摘要即可。

缺点源于这是一个摘要,这意味着您无法在其中做任何您想做的事情(插入行、编写公式、构建任何图表等)将不再起作用。

方法 3:电源查询

让我们使用以下命令将包含源数据的“智能”表加载到 Power Query 查询编辑器中 数据 – 来自表/范围 (数据——来自表/范围). 顺便说一句,在最新版本的 Excel 中,它被重命名了——现在它被称为 有叶子 (来自工作表):

在 Excel 中运行总计

然后我们将执行以下步骤:

1. 使用命令按日期列升序对表格进行排序 升序 在表格标题的过滤器下拉列表中。

2. 稍后,为了计算运行总数,我们需要一个带有序号行号的辅助列。 让我们用命令添加它 添加列 – 索引列 – 从 1 (添加列 — 索引列 — 从 1 开始).

3. 此外,要计算运行总计,我们需要对列的引用 已售楼盘,我们汇总的数据所在的位置。 在 Power Query 中,列也称为列表 (list),要获得指向它的链接,请右键单击列标题并选择命令 详图 (查看详细). 我们需要的表达式会出现在公式栏中,由上一步的名称组成 #“添加索引”,我们从哪里获取表格和列名 [销售量] 来自方括号中的该表:

在 Excel 中运行总计

将此表达式复制到剪贴板以供进一步使用。

4. 删除不必要的更多最后一步 已售楼盘 而是添加一个计算列,用于使用命令计算运行总计 添加列 - 自定义列 (添加列 - 自定义列). 我们需要的公式如下所示:

在 Excel 中运行总计

这里的功能 列表.范围 获取原始列表(列 [销售量]) 并从中提取元素,从第一个开始(在公式中,这是 0,因为 Power Query 中的编号从零开始)。 要检索的元素数是我们从列中获取的行号 [指数]. 所以第一行的这个函数只返回列的第一个单元格 已售楼盘. 对于第二行 - 已经是前两个单元格,对于第三行 - 前三个等。

那么,函数 列表总和 对提取的值求和,我们在每一行中得到所有先前元素的总和,即累计总数:

在 Excel 中运行总计

仍然需要删除我们不再需要的索引列,然后使用 Home – Close & Load to 命令将结果上传回 Excel。

问题已经解决了。

快速和愤怒

原则上,这本可以停止,但美中不足的是——我们创建的请求以乌龟的速度运行。 例如,在我不是最弱的 PC 上,一张只有 2000 行的表在 17 秒内处理完毕。 如果有更多数据怎么办?

为了加快速度,您可以使用特殊的 List.Buffer 函数使用缓冲,它将作为参数提供给它的列表(列表)加载到 RAM 中,这大大加快了将来对其的访问速度。 在我们的例子中,缓冲 #”Added index”[Sold] 列表是有意义的,Power Query 在计算 2000 行表的每一行的运行总数时必须访问该列表。

为此,在主选项卡上的 Power Query 编辑器中,单击高级编辑器按钮(主页 - 高级编辑器)以使用内置于 Power Query 的 M 语言打开我们的查询源代码:

在 Excel 中运行总计

然后在那里添加一个带有变量的行 我的清单,其值由缓冲函数返回,下一步我们用这个变量替换对列表的调用:

在 Excel 中运行总计

进行这些更改后,我们的查询将变得更快,并且只需 2000 秒即可处理 0.3 行表!

另一件事,对吧? 🙂

  • 帕累托图 (80/20) 以及如何在 Excel 中构建它
  • 文本中的关键字搜索和 Power Query 中的查询缓冲

发表评论