如何自动按名字抽取多个 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