Excel多表格合并可用Power Query一键完成:同工作簿多表合并需创建查询后修改高级编辑器代码实现纵向堆叠;跨文件夹批量导入则通过“从文件夹”获取并展开Content;合并时可添加“来源文件”列溯源;支持一键刷新,源结构变动需谨慎。

Excel多表格数据合并,其实不用手动复制粘贴——用“获取数据”功能(Power Query)一键整合多个工作表,准确、可刷新、不丢格式。
自动合并同一工作簿里的多个工作表
适合:所有工作表结构相同(列名、顺序、数据类型一致)。
- 选中任意一个数据表的任意单元格 → 点击「数据」选项卡 → 「从表格/区域」→ 勾选「表包含标题」→ 确定
- 在Power Query编辑器中,点击左上角「主页」→ 「将查询添加为连接」→ 关闭并上载(先不加载)
- 回到Excel,再点「数据」→ 「获取数据」→ 「启动Power Query编辑器」→ 左侧导航栏找到刚创建的查询,右键 → 「参考」
- 新查询中,点「转换」→ 「将第一行用作标题」(如果原始表没标题,跳过)→ 再点「高级编辑器」,把代码里 Source = Excel.CurrentWorkbook(){[Name="表1"]}[Content] 这一行,替换成:
Source = Excel.CurrentWorkbook(),
#"筛选的行" = Table.SelectRows(Source, each [Kind] = "Table"),
#"展开内容" = Table.ExpandTableColumn(#"筛选的行", "Content", Table.ColumnNames(#"筛选的行"{0}[Content]))
→ 点完成,就能看到所有同名结构的工作表已纵向堆叠。最后「关闭并上载」即可。
合并不同Excel文件中的同结构表格(文件夹批量导入)
适合:几十个销售日报、月度报表等分散在多个.xlsx文件中,且每份只有一张数据表。
- 确保所有文件放在同一文件夹,格式统一(如都叫“日报_20240401.xlsx”)
- 「数据」→ 「获取数据」→ 「从文件」→ 「从文件夹」→ 选择该文件夹 → 「转换数据」
- 在Power Query中,删除除「Content」外的所有列 → 点「Content」列右上角的展开按钮 → 勾选「使用第一行作为标题」
- 如有需要,可在「转换」选项卡中统一更改列类型(比如把“日期”列设为日期格式),最后关闭并上载
合并时保留来源表名或文件名,方便溯源
默认合并后看不出数据来自哪张表?加一列标识很关键。
- 在Power Query中合并前(例如用「从文件夹」导入后),先选中「Name」列(文件名)或「Item」列(工作表名)
- 右键 → 「添加为新列」→ 「插入自定义列」→ 名称填“来源文件”,公式填:= [Name](文件夹场景)或 = [Item](工作簿内多表场景)
- 之后再展开Content,这列就会随数据一起带入最终结果,查问题时一目了然
合并后数据自动更新,改源表一点就同步
不用重新操作!只要源文件位置没变、结构没大改,点「数据」→ 「全部刷新」,所有合并结果实时更新。
- 建议:源表不要删列、不要改列名顺序;若新增列,可在Power Query中用「检测数据类型」+「填充」补全
- 如某次刷新报错,双击出错的查询 → 查看「查询设置」→ 「错误」提示,通常是因为某张表空了、标题行多了空格,或数字列混入了文本
- 想定期自动刷新?文件保存为.xlsm或.xlsx → 「数据」→ 「查询和连接」→ 右键查询 → 「属性」→ 勾选「刷新时刷新此连接」和「打开文件时刷新」
以上就是Excel多表格数据快速合并,再也不用手动复制粘贴了的详细内容,更多请关注php中文网其它相关文章!