站内精选

一句话结论

50 份同结构表合成一张总表,用 Power Query 或 Python 批量拼接,再按行数和金额双校验确认无漏无重,半小时内能完成。

这篇解决什么问题

月底收上来的费用明细、报销台账、门店日报,来自十几个部门,表头看着一样,实际要一张张打开复制粘贴。粘到第 20 份的时候,人就开始怀疑自己是不是漏了哪个部门。

这类活的难点从来不在合并本身,在于合完之后你敢不敢签字。适用:列结构一致、文件名或部门标识能对上的批量表格。不适用:表头有合并单元格,或者一个文件里散着好几个不同结构的 sheet。

开始前要准备什么

  • Excel 2016 以上自带 Power Query,WPS 部分版本没有
  • Python 可选,装 pandas 就够;不想折腾环境就全程用 Excel
  • Kimi 用来读表头、写脚本、捋校验思路,免费版日常够用
  • 50 份源表放同一个文件夹,文件名里带部门或月份
  • 第一次做预留 40 分钟到 1 小时,熟练后 10 分钟内

具体怎么做

第 1 步 · 先给表头做一次体检

看起来一样的表头,实际常有空格、换行、全角半角差异,还有「金额(元)」和「金额(元)」混着用。我吃过这个亏,48 份合完了才发现两份的列名带空格,总表凭空多出两列空值。

我把 50 份结构相同的 Excel 表放在同一个文件夹里,准备合并成一张总表。请帮我设计一份表头体检清单,要能查出这些问题:列名前后有空格或换行、同一列在不同文件里叫法不一致、表头不在第一行、存在合并单元格、有的文件多出隐藏列。清单按「检查项 / 检查方法 / 发现后怎么处理」三列输出,方法写 Excel 公式或 Power Query 步骤都可以。示例:某公司「费用明细_华东.xlsx」表头在第 2 行,列名「金额(元)」与「金额(元)」并存。

预期产出:一份体检清单,十分钟内能把 50 份表扫一遍,标出需要返工的那几份。

第 2 步 · 决定走哪条路合并

判断依据其实很简单:这批表以后每个月都要合一次,就用 Power Query,因为操作会被记成查询,下个月刷新就行。一次性任务、或者合并时顺带要做清洗,Python 更省事。我发现财务同事大多偏向 Power Query,理由是每一步都能在界面上看见,不像代码那样一跑黑箱。

我要把同一文件夹下的 50 个 xlsx 合并成一张表,每份都是 Sheet1,第一行是表头,列结构一致:日期、部门、事由、金额、经办人。请给我两套方案并说明各自适用场景:方案 A,用 Excel Power Query 的完整操作步骤,从「数据 – 获取数据 – 从文件夹」开始,每一步点哪里、填什么;方案 B,一段 Python 代码,用 pandas 读取该文件夹下全部 xlsx 纵向合并,并新增一列「来源文件」记录文件名。代码里的路径写成 C:/work/费用明细,不要用我的真实路径。

预期产出:一份能照着点的操作步骤,或者一段改个路径就能跑的脚本。

第 3 步 · 合并时必须留一列来源

合并不难,难的是出了问题能倒查。总表里只留数据不留出处,一旦某个部门金额对不上,你只能从头再翻 50 份表。加一列来源文件名,成本几秒钟,省的是后面一整天。

在上面合并结果里补一段处理逻辑:新增一列「来源文件」,值为该行来自的 xlsx 文件名(不含扩展名);再从文件名里拆出「部门」和「月份」两列,文件名格式统一是 费用明细_部门_2024xx。如果某个文件名不符合这个格式,不要静默跳过,把它单独列到一张异常清单里让我人工确认。请分别给出 Power Query 的步骤说明和对应的 pandas 代码。

预期产出:带来源列、部门列、月份列的总表,外加一张文件命名异常清单。

第 4 步 · 行数校验要分来源对

这是整条流程的命门。光说「合完了」没用,要能说清楚 50 份加起来本来是多少行、总表现在是多少行、每一份各自进来多少行。

我需要做行数校验。请写一段 Python 代码:遍历 C:/work/费用明细 下所有 xlsx,读取每个文件 Sheet1 去掉表头后的有效行数,输出一张对照表,列包括文件名、源表行数、合并总表中该来源的行数、差异。差异不为 0 的行标出来。另外统计合并总表的总行数,与各源表行数之和做对比,把结论写成一句能直接放进工作底稿的话。

预期产出:一张行数对照表,差异列全部为 0,加一句可引用的校验结论。

第 5 步 · 金额再对一遍账

行数对得上不代表数对得上,中间可能混着文本型数字、隐藏行、空白单元格。我一般会再走一次金额合计:源表逐份求和,总表按来源分组求和,两边必须咬合。

接着做金额校验。请写代码:对每个源表文件的「金额」列求和,注意列里可能有文本型数字和空值,先统一转成数值型,并告诉我一共转换了多少个异常值;再对合并总表按「来源文件」分组求和,生成对照表,列包括文件名、源表金额合计、总表该来源金额合计、差额。差额超过 0.01 的行单独列出来。最后把所有源表金额总和与总表金额总和写成一行,给出「通过 / 不通过」的判断。

预期产出:金额对照表,加一个明确的通过或不通过判断。

第 6 步 · 让 AI 写成交得出去的结论

财务和行政最终交上去的东西,往往不是表格本身,而是一段能让领导三十秒看懂的说明。这段文字别自己憋,把校验结果喂给 AI 让它起草。

根据上面的行数对照表和金额对照表,帮我写一段 200 字以内的校验结论,放在工作底稿开头。格式:先写合并范围(多少份文件、多少个部门、覆盖哪几个月),再写行数校验结果和金额校验结果,最后写发现的异常及处理方式。语气平实,不要用「完美」「完全无误」这类词;如果存在差异,如实写出差异金额和涉及的文件名。

预期产出:一段可以直接贴进底稿、不用二次改写的校验结论。

实测记录

项目 情况
范围 50 份 xlsx,12 个部门,3 个月
首次耗时 约 50 分钟,表头体检占了一半
熟练之后 约 10 分钟,大部分时间在等校验跑完
与手工对比 逐张复制粘贴要搭进去一个下午,还漏过 2 份
返工情况 第一次漏了 3 份,文件名多了个空格,Power Query 不报错

最容易错的 3 个地方

  1. 只看列名不看列序。纠正:合并后抽查 3 行,逐字段对回源表。
  2. 总行数对上就收工,其实内部可能重复。纠正:按来源分组比行数,再比金额。
  3. 合完存成 xlsx 就关掉,下月重来。纠正:保存 Power Query 查询,刷新即可。

可复用的东西

全文的提示词归拢起来就四类:表头体检清单、合并方案二选一、行数与金额双校验代码、结论段。换个场景——50 份考勤表、50 份合同台账——只需要换列名和文件夹路径,骨架不用动。

我自己把第 4 步和第 5 步合并存成了一个固定脚本,改一行路径就能复用。行数和金额这两个校验,永远一起跑,别只跑一个。

合并是体力活,校验才是专业活。来源列和两处对账做扎实了,50 份表和 5 份表对你来说没有区别。

你手上那批表,最磨人的是表头不统一,还是文件名一片混乱?

常见问题解答

50 份表里有两份表头不一样,还能一次性合并吗?

不能硬合。先把不一致的两份单独拎出来,确认是多列还是列名不同,改齐后放回文件夹重跑,否则总表会多出整列空白。

没有 Python 基础,只用 Excel 做得到吗?

可以。从文件夹导入、合并、加来源列在 Power Query 界面里点就行,不写代码;只有校验那一步需要配数据透视表或公式做比对。

合完发现行数差了 200 多行,从哪儿查起?

先看按来源文件分组的行数表,差异集中在哪个文件就从哪查。多数情况是文件名格式不统一被筛掉了,或者源表里有隐藏行没读进来。

小程序阅读免费
微信扫码进入小程序,按岗位找 AI 实操步骤
微信扫码进小程序
按岗位找 AI 实操步骤 · 提示词可收藏

发表回复

后才能评论