多张 Excel 表格数据批量汇总—1 分钟搞定

在职场办公中,经常需要将多表格中数据进行汇总求和,那么你知道怎么操作吗

今天就来针对几种常见的情况,教大家一种高效的数据汇总方法,1分钟就能搞定。

第一种:数据来自多个Excel文件,汇总到一个新的Excel文件

第二种:数据来自同一个Excel的多个sheet页,插入汇总sheet

首先我们需要用到一个叫esProc SPL工具,这是一款专门处理结构化表格数据的软件,计算功能强大,使用简单。下载安装后双击即可安装。本文中的例题提供源代码,可复制粘贴使用。

下载地址:esProc Desktop Download

第一种:数据来自多个Excel文件,汇总到一个新的Excel文件

1)单个条件分组汇总

有多个Excel文件,每个文件的内容为几种水果产品每天的销量明细,现需要将几个月的数据汇总计算出每种水果的总销量。

汇总前:

..

..

汇总后:

..

首先把所有需要汇总的Excel文件都放到同一个文件夹下,例如都放到D盘名为test的文件夹。然后运行代码:


A

1

=directory@p("D:/test/*.xlsx")

2

=A1.conj(T(~))

3

=A2.groups(Product;sum(DailySales):TotalSales)

4

=file("D:/test/Total.xlsx").xlsexport@t(A3)

汇总完成!!!

解释下代码:

A1 directory有名址录的意思,这个函数在这里就表示列出test文件夹里所有.xlsx文件名目录

..

A2 循环打开A1路径里的文件,然后进行合并。

T()函数表示打开指定路径文件

A.()是循环函数,A1.(T(~))表示循环A1里的每一个文件路径,并用T()函数打开该文件,~符号表示每一次循环的对象。

循环打开所有文件后,我们还需要把它们合并到一起,因此再加一个conj()函数,表示conjunction的意思。

因此,A2单元里的代码A1.conj(T(~))就表示打开A1里的文件,然后进行合并成一个表格。

A3 根据产品Product分组,对每种产品销量求和,记为TotalSales

..

A4 将汇总数据保存为Total.xlsx文件

(2)多个条件分组汇总:

还是上述销售明细文件,需要按月汇总每种产品的销量,保存到一个新的Excel文件。

汇总后效果:

..

实现代码:


A

1

=directory@p("D:/test/*.xlsx")

2

=A1.conj((fn=filename@n(~),T(~).derive(fn:Month)))

3

=A2.groups(Month,Product;sum(DailySales):MonthSales)

4

=file("D:/test/MonthTotal.xlsx").xlsexport@t(A3)

汇总完成!!!

代码解释:

A2 循环打开每个Excle文件,添加变量Month,取值为该数据来自的月份,然后合并多个文件。

..

A3 根据MonthProduct分组汇总,得到每种水果产品的月销量

..

第二种:数据来自同一个Excel的多个sheet页,插入汇总sheet

每种产品的销售明细存在同一个Excel文件的多个sheet页,需要生成一个汇总sheet页,得到每种产品的总销量。

汇总前:

..

汇总后:

..

实现代码:


A

1

12

2

=A1.conj(T("D:/DailySales_2023.xlsx";~))

3

=A2.groups(Product;sum(DailySales):TotalSales)

4

=file("D:/DailySales_2023.xlsx").xlsexport@kt(A3;"Total")

汇总完成!!!

代码解释:

A1 输入要汇总的sheet页,比如第112页,即12个月的销售数据

A2 循环打开第112 sheet页,并合并成一个表格

A3 按照Product分组汇总,得到每种产品的总销量

借助SPL工具,多张表格数据汇总瞬间就能完成。

并且SPL的函数语法简单,符合自然逻辑思维,理解起来也不难。

当然SPL的功能不止于此,各种复杂场景的Excel文件操作SPL都不在话下。

有需要的小伙伴可以去查阅这本书esProc 桌面版与 Excel 处理职场上90%Excel问题都能在这本书中找到答案。书中的代码基本上复制过去,稍加改改就可使用。