乐于分享
好东西不私藏

不会写代码的财务,靠AI教我写了一个Python小工具,从此告别手动合并12份报表

不会写代码的财务,靠AI教我写了一个Python小工具,从此告别手动合并12份报表

先说个尴尬事。

三个月前,我们财务组闹过一次小乌龙:月底汇总12家门店的费用报表,我一份份复制粘贴到总表里,结果有一份表格里“金额”那一列被门店同事写成了“金额(元)”,我复制的时候少框了一列,合计数直接对不上,最后总账差了小两万,硬是花了一下午才揪出问题出在哪家门店。

那天我下班路上就在想:这活儿,年年月月都这么干,真没有更省心的办法吗?

同事随口说了句:“你这种重复劳动,写个脚本不就自动化了。”

我心想“我又不会编程”,但转念一想——现在不是流行用AI帮忙写代码吗?我一没基础,二没学过Python,抱着试试看的心态,花了一个周末,还真让AI手把手带我写出了一个能用的小工具。今天把过程整个记录下来。

第一步:别指望一句话就能要出能用的代码

我一开始的提问特别粗暴:

“帮我写个Python脚本合并Excel报表”

AI确实给了代码,但我一运行就报错——它压根不知道我的文件长什么样、字段叫什么名字。

后来我意识到,让AI写代码,跟让AI处理数据是一个道理:你说得越具体,它写得越准。

我重新描述了一遍需求:

“我有一个文件夹,里面是12家门店发来的月度费用Excel表,每份表格的列名基本是'门店名称''日期''费用类型''金额',但个别文件列名可能有细微差异(比如'金额'和'金额(元)')。请帮我写一个Python脚本,自动读取文件夹里所有Excel文件,统一列名,合并成一张总表,并按门店和费用类型汇总求和,最后导出一个新的Excel文件。”

这一次,AI给出的代码明显更贴合我的实际情况,核心部分大概长这样(保留了我实际用的版本,做了脱敏):

import pandas as pdimport globimport os# 统一列名的映射表,遇到新的写法就往这里加一条COLUMN_MAP = {"金额(元)": "金额","门店": "门店名称","费用类别": "费用类型",}all_data = []for file in glob.glob("门店报表/*.xlsx"):df = pd.read_excel(file)df = df.rename(columns=COLUMN_MAP)df["来源文件"] = os.path.basename(file)# 方便出错时回溯是哪份表all_data.append(df)merged = pd.concat(all_data, ignore_index=True)summary = merged.groupby(["门店名称", "费用类型"])["金额"].sum().reset_index()summary.to_excel("月度费用汇总.xlsx", index=False)print(f"共合并 {len(all_data)} 份文件,{len(merged)} 条记录")

我不需要完全看懂每一行在干嘛,但AI很耐心地把每一段代码在做什么解释给我听,比如“这一步是把不同的列名统一成一个标准名字,不然后面合并会出错”——这种边写边讲的方式,反而让我对整个流程摸得越来越清楚。

第二步:第一次跑就翻车,但翻在了刀刃上

代码写完我没敢直接拿真实数据跑,先复制了2份门店报表到一个测试文件夹试跑。

这一步庆幸自己留了个心眼——因为真跑起来发现,有一家门店的表格里日期列写的是“2024/3/15”,另一家写的是“2024年3月15日”,格式完全不统一,脚本直接报错退出。

▲ 第一版脚本实际运行时的真实报错(列名不一致导致 KeyError)

我把报错信息原样甩给AI,它告诉我这是日期格式没有标准化的问题,建议加一步专门处理日期列的容错代码。改完之后,两份测试文件顺利跑通,我才把全部12份文件放进去正式跑。

这个教训我记得很清楚:AI帮你写的代码,第一次一定要在小范围数据上测试,别直接对着真实的完整数据跑。 万一逻辑有问题,测试阶段发现比事后发现成本低太多。

第三步:加一道“自查”逻辑,比人眼扫更靠谱

有了上次金额漏看一列的教训,我又追加了一个需求:

“请在脚本里加一步,检查合并后的数据里是否有金额为空、门店名称为空,或者某个门店的费用类型缺失的情况,如果有就打印出来提醒我。”

AI补充了几行代码,跑完之后终端会直接打印类似这样的提示(下图是我用真实测试数据跑出来的结果,其中一份门店报表被我故意留了一处金额缺失,用来验证提醒是否生效):

▲ 加入自查逻辑后的真实运行结果:自动识别出金额缺失的记录并给出提醒

这一下,之前那种“复制粘贴漏了一列都不知道”的情况,现在脚本自己会替我把疑点列出来,我只需要针对性核实这几行,不用再从头到尾一行行盯着看。

最终导出的汇总表长这样(同样是这次测试真实生成的文件):

▲ 脚本自动导出的“月度费用汇总.xlsx”局部截图

现在这活儿变成什么样了

工具写好之后,我把它保存成一个文件,每个月只要把12份门店报表丢进指定文件夹,双击运行一下,几秒钟就出一份汇总表,还带异常提醒。

之前(人工复制粘贴)

现在(Python小工具)

合并12份门店报表

约1小时

约10秒

发现列名不一致的错误

靠肉眼,容易漏(吃过亏)

脚本自动统一处理

排查异常数据

逐行核对,约30分钟

自动打印提醒,约5分钟核实

总耗时

约1.5小时,还提心吊胆

约15分钟,心里踏实

两个必须提醒自己的点

1. 不懂代码不代表不用为代码负责。 AI写的脚本,运行前我都会让它逐段跟我解释这段在干嘛,尤其是涉及“覆盖文件”“删除数据”这类操作的代码,一定要搞清楚再跑,别稀里糊涂点了运行键。

2. 涉及公司真实财务系统、内部数据库的自动化,别自己用AI瞎折腾。 我这个工具处理的是门店发来的Excel文件,本身就是要汇总的公开数据,风险可控;但凡涉及连接公司内部系统、数据库、财务软件接口的自动化需求,一定要走IT和公司审批流程,这不是个人小工具能碰的范畴。

说实话,我到现在也不敢说自己“会编程”,但这次经历让我明白,

不是所有自动化都得先系统学完Python才能上手——从一个具体到不能再具体的真实痛点出发,让AI陪你一步步试、一步步改,普通财务人也能拥有自己的第一个“效率工具”。

你们工作里有没有那种“重复到麻木”的手工活?评论区说说,我看看能不能下一篇就拆解怎么用工具解决。

相关学习资料