Chinaunix首页 | 论坛 | 博客

-

  • 博客访问: 4155544
  • 博文数量: 172
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1923
  • 用 户 组: 普通用户
  • 注册时间: 2018-12-20 14:57
文章分类
文章存档

2021年(19)

2020年(81)

2019年(68)

2018年(4)

我的朋友

分类: 敏捷开发

2020-11-18 10:38:46

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

资产负债表通常如下图:

..

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

 

1.  不同时段合并

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

SPL代码:


A B
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]
5 for 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代码示例:


A B C
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]
5 for 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合并文件中

 

阅读(995) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~