ARTICLE · 1189655
Excel Power Query 追加查询:多表纵向合并,告别复制粘贴
在日常工作中,你是否也遇到过这样的场景:1 月的销售表、2 月的销售表、3 月的销售表……十几张表散落在不同工作簿里,每到月末就得一张张打开、Ctrl+C、Ctrl+V,费时费力还容易出错。
更让人头疼的是,有时候各部门交上来的表格,列的顺序还不一样,有的多了“备注”列,有的少了“渠道”列,手动合并时稍不留神就串行。
今天给大家介绍一个“一劳永逸”的解决方案——Power Query 的追加查询功能。设置一次,以后每个月只需点击“刷新”,所有数据自动汇总,彻底告别重复劳动。
一、先搞清楚:追加 vs 合并,别搞混了
Power Query 里有两个容易混淆的功能:追加查询和合并查询。它们的区别用一句话概括就够了:
追加查询是纵向堆叠——把多张表的行摞在一起,像叠积木一样往上加。
合并查询是横向拼接——根据某个共同字段,把另一张表的列拉过来,类似 VLOOKUP。
记住一个口诀:追加加行,合并加列。
本文重点讲追加查询,适合以下场景:各表结构基本一致,目标是把分散的数据汇总成一张总表,比如各月销售数据合成年度汇总、各地区上报数据合并成全国总表等。
二、追加查询的核心机制:按列名匹配
很多人担心:“万一各表的列顺序不一样怎么办?” 放心,Power Query 追加查询只认列标题名称,不认列的物理位置。
举个例子:表 A 的列是“姓名 | 数量 | 金额”,表 B 的列是“金额 | 姓名 | 数量”,只要列标题名一致,Power Query 就能正确对齐,不会串列。
但如果某张表多了一个其他表没有的列(比如表 C 有“备注”列),追加后的结果中,其他表对应的“备注”位置会显示为 null(空值) 。这不是错误,而是追加查询的正常逻辑——所有表的列标题取并集,缺失的部分用 null 填充。
了解了这个机制,接下来看具体操作。
三、操作步骤:三步完成多表追加
场景准备
假设你有一个工作簿,里面有“1月”“2月”“3月”三张工作表,结构相同。我们需要将它们追加为一张总表。
Step 1:将各表导入 Power Query
在 Excel 中依次点击 数据 → 获取数据 → 来自文件 → 从工作簿,选择当前工作簿。在弹出的导航器中,勾选“选择多项”,然后选中“1月”“2月”“3月”三张表,点击“转换数据”进入 Power Query 编辑器。

Step 2:执行追加操作
在 Power Query 编辑器界面中,点击 主页 → 追加查询 的下拉箭头。这里有两个选项:
追加查询:将其他表直接追加到当前查询中,原查询被修改。
将查询追加为新查询:创建一个全新查询来承载合并结果,原始查询不变。
推荐选择“将查询追加为新查询”,这样源表保持干净,后续排查问题也方便。
在弹出的对话框中,选择 “三个或更多表” 选项按钮,在“可用表”列表中依次选择要追加的表,点击“添加”,然后点击“确定”。

Step 3:检查并加载
追加完成后,你会在查询列表中看到一个新的查询(通常叫“追加1”)。建议做两件事:
在右侧“查询设置”中将查询重命名为有意义的名称,比如“年度汇总”;
检查数据是否有异常,比如列类型是否正确、有没有意外的 null 值。
确认无误后,点击 主页 → 关闭并上载,合并后的数据就会加载到 Excel 的新工作表中。

四、进阶玩法:一个查询搞定所有表
上面是最基础的操作。但你可能注意到了一个问题:如果源表很多(比如 12 个月的表),追加后会生成大量中间查询,查询列表变得杂乱,而且这些中间查询因为被依赖,还不能删除。
其实,追加查询的底层是 Table.Combine 函数。我们可以直接在高级编辑器里写代码,用一个查询完成多表追加,然后就可以删掉那些冗余的中间查询了。
思路很简单:把每个表的处理逻辑嵌入到一个查询中,最后用 Table.Combine 合并。代码结构大致如下:
let// 第一个表的处理表1 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],表1处理 = Table.TransformColumnTypes(表1, {{"姓名", type text}, {"数量", Int64.Type}}),// 第二个表的处理表2 = Excel.CurrentWorkbook(){[Name="表2"]}[Content],表2处理 = Table.TransformColumnTypes(表2, {{"姓名", type text}, {"数量", Int64.Type}}),// 合并合并结果 = Table.Combine({表1处理, 表2处理})in合并结果
这样生成一个最终查询后,那些单独的过程查询就可以放心删除了,查询列表清爽很多。
五、避坑指南:三个常见问题
问题 1:刷新后数据翻倍(递归问题)
这是新手最常踩的坑。当你把追加后的结果加载回当前工作簿,下一次刷新时,Power Query 会把这张结果表也当作源表追加进去,导致数据不断翻倍。
解决方法:在“源”步骤中过滤掉结果表。具体做法是打开查询的“源”步骤,在表名列中筛选,排除掉追加结果表的名称。
问题 2:列名有细微差异导致匹配失败
比如一张表写的是“客户编号”,另一张写的是“客户编号 ”(末尾多了一个空格),Power Query 会认为是两个不同的列,导致匹配失败。
解决方法:在追加之前,统一各表的列名。可以用“转换 → 格式 → 修整”去掉首尾空格,或者用“替换值”统一命名。
问题 3:数据类型不兼容
如果一列在表 A 中是数字,在表 B 中混入了文本(比如“待录入”),刷新时会报类型转换错误。
解决方法:在追加前检查各表的列类型是否一致,或者将类型转换步骤放在追加之后统一处理。
六、真正的杀手锏:一键刷新
追加查询最大的价值不在于“合并”本身,而在于自动化。
设置好追加查询后,以后每次源数据有更新,你只需要在“数据”选项卡中点击 全部刷新,或者在查询右键菜单中选择“刷新”,合并结果就会自动更新。
更进一步,你可以设置 打开文件时自动刷新:在“数据 → 查询和连接”中右键查询,选择“属性”,勾选“打开文件时刷新数据”。这样每次打开工作簿,汇总表就是最新的。
对于需要每月汇总报表的岗位来说,这个功能的效率提升是巨大的——从每次花 30 分钟复制粘贴,变成 3 秒钟点击刷新。
总结
Power Query 追加查询的核心要点回顾:
追加是纵向合并,按列名匹配而非列位置,不同列自动用 null 填充;
推荐用“将查询追加为新查询” ,保持源表不变,便于管理和排查;
用
Table.Combine可以一个查询搞定所有表,避免中间查询堆积;注意递归问题,刷新前务必过滤掉结果表;
设置自动刷新,让汇总从“每月一次的手工活”变成“打开即用”。
如果你还没有用过 Power Query,建议从今天开始尝试。哪怕只是把 3 张表合成 1 张,你也会感受到它带来的效率提升。一旦掌握了追加查询,你会发现:数据汇总这件事,原来可以这么轻松。















































































