如何自动按名字抽取多个 Excel 数据后汇总到一起
例题描述
某文件目录里有多个企业资产负债表,其中一个如下图所示:
现在需要从这些资产负债表中提取某些数据进行财务分析,目标表如下图所示:
第1列是需要提取的数据名称,各资产负债表中的数据分别依次提取到后面的列中。由于货币资金科目各企业报表中名称不一致,所以需要模糊查找,只要名称中含有“货币”即可。
实现步骤
1、 运行集算器
可去润乾官网下载职场版,同时下载一个免费授权就够了,首次运行时会提示加载。
2、 编写脚本
把代码列出来看得清楚点:
A |
B |
C |
D |
E |
F |
|
1 |
>dir="E:/财务数据提取/" |
|||||
2 |
=file(dir+"财务分析.xlsx").xlsopen() |
|||||
3 |
=directory(dir+"zc*.xlsx") |
["货币","应收帐款","其他应收款","应付帐款"] |
||||
4 |
for A3 |
=file(dir+A4).xlsopen() |
||||
5 |
for D3 |
for B4.nrows |
for B4.ncols |
=B4.xlscell(cellname(C5,D5)) |
||
6 |
if like(E5,"*"+B5+"*") |
=B4.xlscell(cellname(C5,D5+2)) |
||||
7 |
=A2.xlscell(cellname(#B5,#A4+1),1;F6) |
|||||
8 |
break C5 |
|||||
9 |
=file(dir+"财务分析.xlsx").xlswrite(A2) |
A1 定义数据文件保存的目录变量dir
A2 打开目标汇总文件“财务分析.xlsx”为Excel对象
A3 列出目录中所有的资产负债表文件(以zc开头的)
D3 定义要提取的数据名称序列
A4 循环目录中的资产负债表
B4 打开当前循环的资产负债表为Excel对象
B5 循环要提取的数据项目
C5 循环当前资产负债表的每一行
D5 循环当前资产负债表的每一列
E5 读取当前行列的单元格内容
E6-F8 如果单元格内容匹配当前数据项,则读出它右边第2个单元格内容,填入目标报表Excel对象的相应单元格,然后结束C5开始的循环,继续查找下一项数据。
A9 把汇总好数据的目标Excel对象A2保存到目标文件。
3、 按F9运行这段程序,打开目标文件财务分析.xlsx,可以看到本文开头所要求的财务数据。
【附件】 cwfx.zip