你的各分公司报表包含同一类销售记录,但表头起始行不同,列名也各不相同。你需要的是一张不丢失记录、不改变合计的单一表格。下面是一个已录制的匡优数言工作流,将三个不匹配的 Excel 文件合并为 445 条已核对的销售记录。你可以复制提示词、观看合并过程,并下载结果自行检查。
要点速览:
- 将表头位置和列名各不相同的文件中的销售记录合并为一张表。
- 使用可复制的提示词设置日期规则、保留缺失值,并要求提供来源详情以便核对。
- 查看已录制的三文件合并结果:445 条记录、2,944 件、10,989,500 收入(原始货币)。
- 在将合并文件用于报表之前,按来源核对记录数和合计。
真正的问题不在于合并
从技术上讲,合并是容易的部分。Excel、脚本和免费工具多年来一直能将多个文件的行堆叠在一起。真正拖慢你每周工作的,是合并之前发生的事:文件不匹配。
本周的一个文件表头在第 1 行。另一个文件表头在第 4 行,因为有人把标题和日期粘贴到了表格上方。第三个文件把同一列写成 "Rev",而其他文件写成 "Revenue"。如果你曾为此搜索过帮助,很可能见过许多做同样工作的人发的帖子:
- 一位运营人员需要每周合并 100+ 个 Excel 文件,担心在此过程中丢失格式或数据(r/excel)。
- 另一位每天通过复制粘贴合并 50+ 个文件,因为表头不在顶部,而且数据上下都有杂项信息(r/excel)。
- 一位非程序员尝试用 Python 合并不一致的工作簿批次,结果卡在了文档里(r/learnpython)。
- 有人写了一个宏从多个文件中提取特定单元格,但它逐格录制,运行太慢(r/excel)。
这些就是来自不同人员、系统或月份的真实业务文件的样子。合并本身很简单。真正的工作在于解决这些不一致。
选择一种组合文件的方式
Excel 工具和脚本都能组合文件。真正有用的问题是:你的这些具体差异需要多少准备工作,以及你将如何核对结果。
方案 1:购买合并工具
当文件布局一致时,专用合并工具速度很快。它们通常能一键堆叠多个工作簿的行,对于干净、相同的导出文件,这正是你想要的。
请检查你所选工具能否检测第一行以下的表头、将不同名称映射到同一列,并报告被跳过的行。只能堆叠匹配布局的工具,在正确组合这些导出文件之前需要先做预处理。
方案 2:Power Query
当文件一致时,Power Query 是一个有用的选择。如果每周导出都来自同一系统、列也相同,那么构建一次查询并定期刷新就是很好的工作流,除了你已有的 Excel 之外不花额外成本。
当布局变化时,你的查询需要针对这些差异设置规则:
- 某些文件中表头位于第 2 行或第 5 行。查询指向的是第 1 行,于是这些列会错位或消失。
- 列被重命名。某个月的导出中 "Region" 变成 "Area",查询会把它当作一个全新的、无关的字段。
- 数据中间出现合计行。它会像普通行一样进入合并表,你的求和就会悄悄出错。
Power Query 可以通过适当的转换和列映射规则来处理这些差异。当导出变化时,这些规则需要维护,所以要考虑由谁负责这套设置。
方案 3:编写 VBA 或 Python
宏和脚本几乎能处理任何情况,包括脏乱的文件。代价则不同:你现在要维护代码。上面引述中那个逐格录制的宏就是很好的例子。技术上它能用。但它慢到没有实用价值,而且下一批文件中每一个结构上的意外都意味着又一次修改。那位卡在 Python 文档里的非程序员,遇到的正是同一权衡的另一面:方法可行,但只适合能维护它的人。
如果你喜欢写脚本,这是一条正当的路径。如果你的实际工作是运营或财务,而写脚本只是达成目的的手段,那你就是在做本职工作的同时还维护着一套软件。
"脏乱"到底具体指什么
"脏乱文件"不是含糊的抱怨。它是一份具体的清单,你很可能认得其中大部分:
- 表头不在第 1 行:真正的表格上方有标题、日期或空行带。
- 数据上下有备注:"制表人"、"机密",或表格中最后一刻添加的评论。
- 同一列在每个文件中名称不同:"Revenue"、"Rev"、"Sales Amount"。
- 合并单元格:一个区域标签横跨三行,所以只有第一行携带值。
- 数字和日期以文本存储:"1,250" 是文本,"2026/10/01" 是字符串,合计会悄悄跳过这两者。
- 空行把表格切成几段。
- 一行合计不能被当作数据计入,有时在底部,有时在中间。
如果这些中有三项或更多符合你每周的文件,那么"合并文件"这个说法其实一直掩盖了真正的任务。真正的任务是:把不匹配的文件变成一张每一行含义都相同的表。那是另一项工作,需要另一种方法。当文件已经在一个工作簿中但值仍需规范化时,一个单独的数据清理工作流会有所帮助。
大白话路线
使用匡优数言的 Excel AI 工作流,上传你的工作簿,并说明哪些记录属于合并表、哪些列含义相同,以及缺失值应该如何处理。然后审查生成的表及其核查结果。
对于销售合并,要求每个原始销售记录对应一行。保留来源引用,要求按文件给出合计,并告诉工具将不确定的值留空。这样就能在错误映射进入报表之前更容易地发现它。
已录制的示例:三个不匹配的销售工作簿
本演示使用来自 GitHub 销售合并项目 的三个公开分享的 合成练习工作簿。它们代表来自拉合尔、卡拉奇和伊斯兰堡的同类销售明细。这是使用练习数据的产品演示,而非客户案例研究。
下面的录像展示了原始文件预览、合并请求、匡优数言的摘要,以及合并后的工作簿预览。时长约 2 分 37 秒。
第 1 步:检查源文件中的差异
三个文件都包含销售记录,但简单复制粘贴需要做几处修正:
| 源工作簿 | 差异之处 | 销售记录 |
|---|---|---|
branch_lahore.xlsx |
表头在第 4 行,上方有标题、备注和一个空行 | 140 |
branch_karachi.xlsx |
列名不同,日期为日/月/年格式,价格如 Rs 5600 以文本存储 |
160 |
branch_islamabad.xlsx |
列名不同,有五个空行,且类别和单价缺失 | 145 |
拉合尔:在备注下方找到表头。 销售列包括 ProductID、Units Sold 和 Total Sales。它们上方的文字不是销售记录。

卡拉奇:匹配名称并正确读取日期。 这里的 Item_Code 与拉合尔的 ProductID 含义相同。Qty 对应 Units Sold,Revenue 对应 Total Sales。像 26/12/2025 这样的日期必须按日/月/年读取。

伊斯兰堡:保留不完整的销售记录。 第 6 行为空,但第 5 行包含一条有效销售,只是单价缺失。这两者需要不同处理:跳过空行,保留该销售以供审查。

第 2 步:上传三个文件并描述合并要求
在匡优数言中选择所有三个 .xlsx 文件。本工作流使用的提示词明确了列匹配、日期格式、缺失值规则和预期的审查摘要:
将这三个分公司销售工作簿合并为一张干净的表,每条原始销售记录对应一行。
在每个文件中找到真正的表头,跳过标题、备注和完全空白的行。按含义匹配列:Date / Sale_Date / TransactionDate;ProductID / Item_Code / SKU;ProductName / Item_Name / Product;Category / Cat;Units Sold / Qty / QtySold;Unit Price / Price(Rs) / UnitPrice;Total Sales / Revenue / LineTotal。
使用以下输出列:Date、Branch、SKU、Product、Category、Quantity、Unit Price、Revenue、Source File、Source Sheet、Source Row。从文件名中获取 Branch。将 SKU 保留为文本。将卡拉奇日期解析为 DD/MM/YYYY,所有日期显示为 YYYY-MM-DD,并将带 Rs 前缀的价格转换为数字,不改变货币。
保留所有销售记录,包括字段缺失的记录。将缺失的 Category 和 Unit Price 留空,并报告以供审查。不要猜测、填充、去重或重新计算原始 Revenue。
按源文件创建摘要,显示记录数、总 Quantity、总 Revenue 和缺失字段计数。单独报告被排除的非数据行。将合并表和审查摘要导出到 combined_branch_sales.xlsx。
重要的指示是保留所有销售记录。缺失的类别不应让一条真实销售消失。要求工具保留现有收入,也能在标准化列的同时避免改变合计。
第 3 步:将结果与原始文件对比
匡优数言返回了 445 条销售记录和按来源的摘要。下面的截图来自录像,其中的数字已与三个源工作簿和下载的结果独立核对。

| 分公司 | 记录数 | 总数量 | 收入,原始 Rs 金额 |
|---|---|---|---|
| 拉合尔 | 140 | 889 | 3,200,000 |
| 卡拉奇 | 160 | 1,239 | 4,954,300 |
| 伊斯兰堡 | 145 | 816 | 2,835,200 |
| 合计 | 445 | 2,944 | 10,989,500 |
逐行对比确认每条源销售记录都只出现一次,并且在按要求完成日期和价格转换后,其日期、分公司、SKU、产品、类别、数量、单价和收入均与来源一致。收入得到保留,未进行货币转换。
输出还保留了 16 个缺失类别和 27 个缺失单价。它们影响 39 条销售记录,因为有些记录两个字段都缺失。Review - Missing Fields 工作表标明了它们。Excluded Rows 工作表列出了八条非数据行:拉合尔的两条介绍行和一个空行,加上伊斯兰堡的五个空行。
第 4 步:在报告前打开导出的工作簿
合并表使用一致的列,并包含源工作表和源行引用。录像展示了它在匡优数言的工作簿预览中的样子:

下载已录制的分公司销售合并工作簿(.xlsx) 以检查同样的结果。先看 Summary by Source File,然后打开 Combined Sales 并对照原始文件抽查几行。在将表视为完整之前,先使用 Review - Missing Fields。
在此导出中有一个细节需要检查:屏幕上的摘要显示原始文件名,而工作簿的 Source File 列包含类似 file-472e77ca-5ff0-4e.xlsx 的系统文件名。在本例中,使用 Branch、Source Sheet 和 Source Row 来追溯记录。如果你的交接流程需要原始文件名,请明确要求该映射并在导出中核实。
此录像验证了这次三文件合并。它并不确立 100 文件的上限,也没有测试所有 Excel 布局,而且这些源文件中没有小计行可供测试小计移除。
一旦你的合并表通过审查,可将其用于月度 CSV 报告工作流,或将其转变为仪表盘供需要分公司合计的同事使用。
什么时候直接用 Power Query 就好
选择既适合文件、也适合负责维护流程之人的方法。
当你的文件每次都来自同一系统、布局相同时,使用 Power Query。每月导出始终列相同、表头在第 1 行、没有手动编辑,这正是 Power Query 擅长的场景。构建一次查询,每月刷新,就完成了。它在受支持的 Excel 版本中可用,并可在新文件到达时刷新。
当导出多变,而你更愿意用文字描述规则时,值得尝试大白话工作流。当你想在 Excel 内维护显式转换时,值得设置 Power Query。无论哪种方式,在使用结果前都要对比记录数、合计和异常。
常见问题
它能处理多少个文件?
本演示使用三个工作簿。对于更大的批次,请查看你账户中的当前上传限制,并先试一个有代表性的样本。此录像并未验证 100 文件的批次。
它会改变我的原始文件吗?
不会。你的原始文件保持不动。输出是新的合并数据集或报表,你可以审查、导出和分享。
CSV 和 PDF 文件呢?
匡优数言支持 Excel、CSV 和 PDF 输入。此录像仅涵盖 Excel。对于 PDF 表格,请先检查提取出的列和行,再将其与工作簿数据合并。
它每月都会运行吗?
当下个月的文件到达时,你可以复用提示词。上传新批次,检查任何已更改的表头或格式,并审查新的合计。此处展示的工作流由用户运行;它并不演示定时处理。
我该如何试用?
查看当前的方案和可用用量。先从小批次开始,将结果与手动核对进行比较,然后再扩展工作流。
你的下一批文件,已准备好审查
把不匹配的文件变成一张表。
在下一份分公司报告到期之前,上传三个有代表性的文件。复用上面的提示词,在分享结果之前对比记录数和收入合计。
保持原始文件不变,在用于报表之前先审查输出。







