有没有财务、行政、运营的朋友,一到月底 / 季度末就头皮发麻?两个 Excel 往来台账,上千行订单数据、交易金额,要一笔一笔核对匹配,眼睛瞪得像铜铃,3 个小时过去,不仅没对完,还漏了好几笔、错了数,加班到深夜,整个人都快 emo 了。上周我公司的行政小妹,就卡在了供应商对账上。2 个表格,1200 + 行付款数据,对了一上午,越对越乱,急得快哭了。我过去看了一眼,给她写了 10 行 Python 代码,点一下运行,10 秒不到,直接把「匹配一致」「金额差异」「缺项漏项」的数据分得明明白白,还自动生成了对账结果表,她当场看傻了。今天就把这个对账神器,完整分享给大家。不用你懂代码,不用你学编程,复制粘贴就能用,10 秒搞定几小时的对账工作。先看效果!差距到底有多离谱
零代码小白专属:3 步直接上手,复制就能用
全程不用你写任何一行代码,只要跟着步骤走,哪怕你是第一次接触 Python,也能一次成功。步骤 1:1 分钟完成环境准备(只需要做一次)
- 官网下载 Python,按默认步骤一键安装(全程点下一步即可,不会的朋友后台回复【安装】领保姆级图文教程)
- 按下键盘Win+R,输入cmd打开命令提示符,输入下面这行命令,按下回车,等待安装完成:
pip install pandas openpyxl
3、电脑自带的记事本、或者任意代码编辑器(比如 VS Code)都能用,不用额外装复杂软件。
步骤 2:准备好你的对账 Excel 文件
把你要对账的 2 个 Excel 文件,放在电脑同一个文件夹里
给文件改个简单的名字,比如对账表1.xlsx、对账表2.xlsx(避免中文空格,防止报错)
确认两个表格里,有唯一的对账关键列(比如订单编号、交易单号),以及要核对的数值列(比如交易金额、付款金额),列名要保证没有合并单元格、前后没有空格。
步骤 3:复制代码,修改 2 个地方,一键运行
下面就是完整的 10 行核心代码,全选复制,粘贴到你的记事本 / 代码编辑器里,只需要修改 2 个地方,就能直接用。import pandas as pd# 读取两个对账Excel文件(修改这里的文件名,和你的文件名称保持一致)df1 = pd.read_excel("对账表1.xlsx", sheet_name=0)df2 = pd.read_excel("对账表2.xlsx", sheet_name=0)# 设定对账规则(修改这里:关键匹配列、核对金额列,和你的Excel列名保持一致)key_column = "订单编号"check_column = "交易金额"# 匹配两个表格的对账数据merge_result = pd.merge(df1, df2, on=key_column, how="outer", suffixes=("_表1", "_表2"), indicator="匹配状态")# 标记对账结果,区分一致/漏项merge_result["匹配状态"] = merge_result["匹配状态"].map({"both": "两边一致", "left_only": "仅表1有", "right_only": "仅表2有"})# 自动计算金额差异merge_result["金额差异"] = merge_result[f"{check_column}_表1"] - merge_result[f"{check_column}_表2"]# 自动导出对账结果到新Excel文件merge_result.to_excel("对账结果_自动生成.xlsx", index=False)print("对账完成!结果已自动导出到当前文件夹")
只需要修改 2 个地方,小白也能一秒搞定:
- 把"对账表1.xlsx"、"对账表2.xlsx",改成你自己的 Excel 文件名
- 把key_column = "订单编号"里的订单编号,改成你自己的对账关键列名;把check_column = "交易金额"里的交易金额,改成你要核对的金额列名
修改完成后,保存文件,按下运行键,10 秒就能在同一个文件夹里,看到自动生成的对账结果_自动生成.xlsx文件。运行成功效果展示
- 自动标注了每一行数据的匹配状态:两边一致、仅表 1 有、仅表 2 有,快速找到漏项
- 完整保留了两个表格的原始数据,不用来回切换表格核对
小白常见问题答疑(避坑必看)
运行报错怎么办?
90% 的问题都是文件名 / 列名和代码里的不一致,或者 Excel 文件没关闭就运行了。检查文件名、列名完全一致,关闭 Excel 文件再重新运行即可。
我的表格有多个 sheet 页怎么办?把sheet_name=0里的数字,改成对应的 sheet 页序号就行(0 代表第一个 sheet,1 代表第二个,以此类推)。
我要核对多个列怎么办?把key_column = "订单编号"改成key_column = ["订单编号", "姓名"],括号里加上你要核对的所有列名即可。
写在最后
我是小军,一个懂开发、会运维,专门帮你用技术搞定无效加班的职场人。做了 15 年开发,我发现 90% 的职场人,都在把时间浪费在重复、机械的对账、报表、批量处理工作上。明明几行代码就能 10 秒搞定的事,偏偏要花几个小时手动去做,熬没必要的夜。后续我会持续分享更多开箱即用的办公脚本、零代码效率技巧、职场 IT 运维干货,帮你告别重复工作,准点下班。福利时间
关注小军办公技术助手,后台回复关键词【对账】,直接领取本文完整脚本 + Excel 示例文件,下载就能直接用,不用自己改代码,打开就能跑通!(最后,送一个自己手搓的免费记帐小工具,永久免费喔。)如果你有其他搞不定的办公难题,也可以在评论区留言,我来帮你出专属解决方案~