合併資產負債表

cainiao_M發表於2020-12-03

在企業財務工作中,每個財務週期都要製作資產負債表,週期分為月度、季度、年度。季度報表可由月度報表合併得來,年度報表可由季度報表合併而來。有些大企業有許多部門,各部門也有資產負債表,總公司的資產負債表可由各部門的合併得來。如果由人工來進行這種合併工作,不僅煩瑣,還易出錯。如果使用程式自動完成這種工作就會既高效又正確。本文將介紹 esProc SPL 編寫的資產負債表合併程式碼示例。esProc 是專業的資料計算引擎,SPL 中提供了完善的 Excel 檔案讀寫函式,做資產負債表合併非常容易。

資產負債表通常如下圖:

..

表中紅色字型單元格是由其它單元格資料計算得來的,合併時不用考慮這些格,只需合併黑色字型單元格的資料。

按時段合併時,合併報表的期初數為第一個時段的期初數,期末數為最後一個時段的期末數。如用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合併檔案中

合併不同部門時,合併報表的期初數為各部門期初數之和,期末數也為各部門期末數之和。

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合併檔案中

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章