先说个尴尬事。
三个月前,我们财务组闹过一次小乌龙:月底汇总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陪你一步步试、一步步改,普通财务人也能拥有自己的第一个“效率工具”。
你们工作里有没有那种“重复到麻木”的手工活?评论区说说,我看看能不能下一篇就拆解怎么用工具解决。
夜雨聆风