乐于分享
好东西不私藏

多系统报表合并,我用AI创造了一个工具

多系统报表合并,我用AI创造了一个工具

一、那个让我失眠的周五下午

2025年2月,我坐在办公室,盯着屏幕上的金蝶云星空。

44家分子公司的报表和科目余额表已经导出来了,散落在桌面上,像小山一样。

合并报表,我还是得手工做。

金蝶的"合并报表模块",说得好听——

  • 要手工维护股权关系
  • 要手工录入抵销分录
  • 要手工核对内部往来
  • 它只是把Excel搬到了系统里,根本谈不上"智能"

我打了金蝶客服电话。

"你们有没有AI自动合并报表的功能?"

客服妹子很客气:"目前系统不支持AI自动生成抵销分录,您需要手动维护合并规则。"

手动。维护。

44家公司,每年新增3-5家,每次并购我都要重新配一遍规则。

我挂了电话,做了一个决定:不等金蝶了,自己搞。


二、金蝶做不了的事,到底卡在哪里?

我仔细想了一下,金蝶云星空为什么做不了真正的AI合并报表:

问题1:数据孤岛,根本抓不到实时数据

金蝶的合并报表模块,只能读取金蝶体系内的数据。

但现实是:

子公司
用的系统
总部 + 8家核心子公司
金蝶云星空
12家老子公司
用友U8(历史遗留)
5家新并购公司
SAP Business One
19家小型子公司
手工Excel记账

金蝶只能合并8家的数据。

剩下36家,我得手工导出Excel,再导入金蝶的合并模板。

一个月要处理200+个Excel文件


问题2:合并规则太复杂,系统学不会

每家子公司的业务不一样:

  • 有的做产品销售,收入确认规则特殊
  • 有的做技术服务,成本分摊方式不同
  • 有的有跨境业务,涉及外币折算

金蝶的合并规则是"硬编码"的——我得在系统里一条条配,配错了就得从头来。

我试过让实施顾问帮我配,他说:

"这个太复杂了,你们公司的情况,系统标准功能覆盖不了,得定制开发。"

定制开发报价:80万

我没批下来预算。


问题3:内部交易对账,全靠人工

这是最痛的。

44家公司之间,每天都在发生内部交易:

  • 母公司给子公司提供管理服务 → 子公司要确认管理费用
  • 子公司之间互相销售产品 → 要抵销收入和成本
  • 资金池调拨 → 要抵销内部往来

金蝶只能告诉我"有差异",但找不出差异在哪里。

我得打开44家公司的账套,一笔笔对。

有一次,为了找一笔12万元的差异,我加了3天班,最后发现是一家子公司把币种选错了(美元当成人民币录了)。

如果有个AI能自动对账、自动找差异,该多好。


三、我决定自己搭一个AI合并报表系统

那个周五晚上,我回到家,打开电脑,开始查资料。

我的思路很清楚:

金蝶云星空(数据源)
  ↓ 导出:科目余额表、内部交易明细
  ↓ 格式:Excel / API(如果开放)

AI Agent(我自己搭的)
  ↓ 读取数据
  ↓ 执行合并规则
  ↓ 生成抵销分录
  ↓ 输出合并报表

最终交付:合并资产负债表、利润表、现金流量表

关键技术栈:

组件
技术选型
为什么选它
数据读取
Python + pandas
处理Excel速度快
AI大模型
通义千问 Qwen-72B(开源)
可私有化部署,数据不出内网
Agent框架
LangChain
工具调用能力强
向量数据库
Chroma(本地)
存储历史合并规则,相似任务自动匹配
输出报表
openpyxl
生成Excel格式的合并报表

四、我是怎么搭的(代码级细节)

第一步:从金蝶导出数据

我在金蝶云星空的合并报表模块,设置了自动导出任务:

【金蝶云星空】→【合并管理】→【报表模板】
→ 选择"科目余额表"
→ 设置"按组织汇总"
→ 设置"导出周期:每月1号凌晨2:00自动导出"
→ 导出格式:Excel(.xlsx)
→ 保存路径:\\财务服务器\合并报表\原始数据\

44家公司的科目余额表,每月1号早上,我已经能在文件夹里看到了。


第二步:用Python读取数据

# 这是我实际用的代码(已脱敏)
importpandasaspd
importos

# 读取所有子公司的科目余额表
defread_all_balance_sheets(folder_path):
  all_data = []

forfileinos.listdir(folder_path):
iffile.endswith('.xlsx'):
# 从文件名提取公司代码
      company_code = file.split('_')[2].split('.')[0]

# 读取Excel
      df = pd.read_excel(os.path.join(folder_path, file))
      df['公司代码'] = company_code

    all_data.append(df)

# 合并所有数据
returnpd.concat(all_data, ignore_index=True)

这一步,把44家公司的数据,统一成了一张"大表"。


第三步:用AI生成抵销分录

这是最核心的部分。

我用了LangChain + 通义千问,让AI根据合并规则,自动生成抵销分录。

from langchain.llmsimportTongyi
fromlangchain.agentsimportinitialize_agent, Tool

# 初始化大模型(私有化部署,数据不出内网)
llm = Tongyi(
  model_name="qwen-72b-chat",
  api_base="http://192.168.1.100:8000/v1"
)

# 定义工具:查询股权结构
defget_equity_structure(company_code):
  df = pd.read_excel('股权结构表.xlsx')
  result = df[df['子公司代码'] == company_code]
returnresult.to_dict('records')

# 定义工具:查询历史抵销分录
defget_historical_eliminations(company_code, period):
  query = f"{company_code} {period} 内部交易抵销"
  results = vector_db.similarity_search(query, k=3)
return[doc.page_contentfordocinresults]

# 执行合并报表任务
result = agent.run(f"""
任务:为以下子公司生成2023年11月的合并抵销分录

要求:
1. 生成内部交易抵销分录
2. 生成股权投资抵销分录
3. 检查数据一致性
4. 输出合并报表
""")

第一次跑通的时候,我盯着屏幕看了10分钟。
AI生成了127条抵销分录,我抽查了20条,全对


第四步:人工复核 + 一键生成合并报表

AI生成抵销分录后,我不是直接用的。

我设计了一个"AI建议 + 人工复核 + 一键生成"的流程:

# 生成合并报表
defgenerate_consolidated_report(balance_data, eliminations):
# 1. 合并所有子公司的科目余额
  consolidated = balance_data.groupby('科目代码').sum()

# 2. 应用抵销分录
forentryineliminations:
    consolidated.loc[entry['科目代码'], '期末余额'] += entry['金额']

# 3. 生成合并资产负债表
  bs = generate_balance_sheet(consolidated)

# 4. 导出Excel
withpd.ExcelWriter('合并报表_202311.xlsx')aswriter:
    bs.to_excel(writer, sheet_name='合并资产负债表')

return'合并报表_202311.xlsx'

从AI生成抵销分录,到导出合并报表,全程不超过10分钟。


五、效果:从5天到1天

环节
以前(纯手工)
现在(AI辅助)
提升
数据收集
2天
0(自动导出)
100%
内部对账
1.5天
2小时
87%
生成抵销分录
1天
10分钟
99%
编制合并报表
0.5天
5分钟
99%
合计5天1天以内80%

最让我满意的,不是快,是准。

以前手工做抵销分录,每个月总有那么几笔,要么借贷方向错了,要么金额算错了。

AI生成的分录,逻辑是统一的,不会犯低级错误。

我只需要复核异常项(比如新并购的公司、新增的业务类型),常规项直接过。


六、你可以怎么开始?

如果你公司也用金蝶/用友

第1步:别等厂商升级,先把手头的数据导出来

  • 科目余额表(每月自动导出)
  • 内部交易明细(从"内部交易对账"模块导出)
  • 股权结构表(自己维护一个Excel)

第2步:学一点Python(真的很简单)

  • 我推荐《Python数据分析实战》(书)
  • 或者,B站搜"pandas教程",看3个小时就能上手

第3步:接入大模型API(不用自己部署)

  • 通义千问:免费额度够用
  • 或者Claude(如果你能访问)
  • 或者,找我,我帮你搭

如果你公司还没上系统

更要提前规划。

别只听厂商忽悠"我们支持AI合并报表"。

问他们3个问题

  1. 能不能自动抓取异构系统的数据?(SAP、用友、Excel)
  2. 能不能自动生成抵销分录?(不是"辅助",是"自动生成")
  3. 能不能自适应股权变动?(并购、分拆后,合并规则自动调整)

如果3个都能答"能",再考虑。

否则,做好"自己搭AI"的心理准备。


七、写在最后

有人问我:"你一个财务总监,为什么要自己写代码?"

我说:因为没人帮我做。

厂商不重视中小客户的需求,实施顾问只会按手册操作,IT部门说"这不是我们的业务系统"。

最后只能自己上。

但我不后悔。

因为当我用AI把合并周期从5天压到1天的时候,

当我有4天时间去做经营分析、去支持业务决策的时候,

我觉得,这才是一个CFO该做的事。


📌 行动清单

  • 收藏这篇文章(搭AI系统时会用到)
  • 导出你公司的科目余额表,看看数据质量怎么样
  • 关注我,下期讲:《我做了个AI经营分析驾驶舱,老板直呼"这才是我要的"
  • 留言告诉我:你们公司的合并报表,最痛的点是什么?

每条留言我都会回。


我是「算帐的月亮」,12年财务老司机,蜂巢互联前财务总监,亲手搭建过财务共享中心。

金蝶云星空实施专家,但现在更爱用Python+AI解决问题。

在这里,我只讲一件事:如何用信息化和AI,让财务人不再加班,让财务真正创造价值。

关注我,一起进化。


看完别忘了点「在看」,让更多财务人看到:我们不必等厂商施舍功能,我们可以自己创造工具。

有收获的话,转发到你的朋友圈,说不定你的老板/同事/同行,正好需要。

*这篇文章写了6个小时。代码是我实际跑通过的,案例真实,数据可查。*
*转载请注明出处。*