某文件目录里有多个企业资产负债表,其中一个如下图所示:
现在需要从这些资产负债表中提取某些数据进行财务分析,目标表如下图所示:
第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