【摘要】
本文介绍用 esProc SPL 实现合并资产负债表,包括不同时段合并和不同部门合并。请点击合并资产负债表了解详情

在企业财务工作中,每个财务周期都要制作资产负债表,周期分为月度、季度、年度。季度报表可由月度报表合并得来,年度报表可由季度报表合并而来。有些大企业有许多部门,各部门也有资产负债表,总公司的资产负债表可由各部门的合并得来。如果由人工来进行这种合并工作,不仅烦琐,还易出错。如果使用程序自动完成这种工作就会既高效又正确。本文将介绍 esProc SPL 编写的资产负债表合并代码示例。esProc 是专业的数据计算引擎,SPL 中提供了完善的 Excel 文件读写函数,做资产负债表合并非常容易。

资产负债表通常如下图:

image

表中红色字体单元格是由其它单元格数据计算得来的,合并时不用考虑这些格,只需合并黑色字体单元格的数据。

1.不同时段合并

按时段合并时,合并报表的期初数为第一个时段的期初数,期末数为最后一个时段的期末数。如用1、2、3月的资产负债表合并一季度的报表时,期初数为1月的期初数,期末数为3月的期末数。

SPL代码:

 AB
1=file("e:/资产负债表/1月.xlsx").xlsopen()
2=file("e: /资产负债表/3月.xlsx").xlsopen()
3=file("e: /资产负债表/一季度.xlsx")
4\[C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C20,C21,C24,C25,C27,C29,C30,C31,C34,C35,C36,C40,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F22,F23,F24,F25,F26,F29,F33,F34,F36,F37,F38,F39\]
5for A4=A2.xlscell(A5,1)
6 =A1.xlscell(A5,1;B5)
7=A3.xlswrite(A1) 

A1   打开1月份的资产负债表

A2   打开3月份的资产负债表

A3   指定合并后的资产负债表文件名

A4   列出要读取期末数的单元格名称

A5-B6   循环读取3月表中A4指定的单元格的期末数,并写入到1月表中的对应格

A7   将合并后的A1保存到A3指定的Excel合并文件中

2. 不同部门合并

合并不同部门时,合并报表的期初数为各部门期初数之和,期末数也为各部门期末数之和。

SPL代码示例:

 ABC
1\[e:/资产负债表/部门1.xlsx,e:/资产负债表/部门2.xlsx,e:/资产负债表/部门3.xlsx\]
2=file("e:/资产负债表/公司总表.xlsx")
3=A1.(file(~).xlsopen())
4\[B5,B6,B7,B8,B9,B10,B11,B12,B13,B14,B15,B16,B17,B20,B21,B24,B25,B27,B29,B30,B31,B34,B35,B36,B40,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C20,C21,C24,C25,C27,C29,C30,C31,C34,C35,C36,C40,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E22,E23,E24,E25,E26,E29,E33,E34,E36,E37,E38,E39,F5,F6,F7,F8,F9,F10,F11,F12,F13,F14,F15,F16,F17,F18,F22,F23,F24,F25,F26,F29,F33,F34,F36,F37,F38,F39\]
5for A4>v=0 
6 for A3=B6.xlscell(A5,1)
7  >v+=if(C6==null,0,float(C6))
8 if v==0>A3(1).xlscell(A5,1;null)
9 else>A3(1).xlscell(A5,1;string(v))
10=A2.xlswrite(A3(1))  

A1   列出各部门资产负债表文件名

A2   指定合并后的资产负债表文件名

A3   打开各部门资产负债表文件

A4   列出要读取数据的单元格名称

A5-C9   循环要读取的单元格,从各部门表中读取当前格数据(没填计0),并累加到变量v,将累加后的v写入到第一个部门表的对应格中(v为0时将单元格置空)。

A10   将保存了合并后值的第一部门表保存到A2指定的Excel合并文件中


raqsoft
114 声望10 粉丝