PowerQuery合并文件夹的实用技巧
时间:2026-02-19 20:15:49 439浏览 收藏
本文深入讲解了Excel Power Query四大核心技巧——批量合并文件夹内结构一致的Excel文件、高效整合同一工作簿中的多个工作表、通过参数化路径实现动态文件夹切换,以及智能处理列名不统一的多源数据映射与标准化合并,帮助用户彻底告别手动复制粘贴,轻松实现自动化、可复用、高容错的数据汇总,大幅提升日常报表处理效率与准确性。

如果您需要将同一文件夹下的多个Excel工作簿或工作表数据自动汇总到一个工作表中,则可以利用Power Query的“从文件夹”功能批量导入并合并。以下是实现此目标的具体操作步骤:
一、使用Power Query从文件夹导入并合并Excel文件
该方法适用于文件夹内所有Excel文件结构一致(如每张表都有相同列名和数据格式),Power Query会自动识别并堆叠各文件中的指定工作表。操作前请确保所有Excel文件已关闭,且不包含密码保护或受保护视图限制。
1、在Excel中,点击【数据】选项卡,选择【获取数据】→【从文件】→【从文件夹】。
2、在弹出窗口中,浏览并选中目标文件夹路径,点击【确定】。
3、Power Query编辑器中将显示该文件夹下所有文件列表,等待预览加载完成后,点击右上角【转换数据】按钮进入高级编辑界面。
4、在查询编辑器左侧,找到名为“Content”的列,右键选择【删除其他列】,仅保留该列。
5、选中“Content”列,点击【转换】→【使用第一行作为标题】(若源表首行为列名)。
6、点击【主页】→【合并查询】→【合并查询为新查询】,在弹出窗口中:左表选当前查询,右表选“示例文件”(即任意一个原始Excel文件的Sheet),匹配列为“Name”与“Sheet Name”,勾选【使用完整文件路径进行匹配】(如需按特定表名筛选可后续添加筛选器)。
7、展开合并后的“Transform File”列,取消勾选【使用原始列名作为前缀】,仅保留数据列,点击【确定】。
8、点击【主页】→【关闭并上载】,数据将自动加载至新工作表中。
二、通过Power Query合并同一工作簿内多个工作表
当所有待汇总数据位于同一个Excel文件的不同工作表中,且各表结构相同,可直接引用该文件内部多个Sheet,避免重复导入文件夹。此方式跳过文件系统扫描,响应更快、稳定性更高。
1、在Excel中,点击【数据】→【获取数据】→【从工作簿】,选择目标Excel文件并点击【导入】。
2、在导航器窗口中,取消勾选【启用导航器】,直接点击左下角【转换数据】进入Power Query编辑器。
3、在查询编辑器中,右侧“查询”窗格列出所有工作表名称,按住Ctrl键多选需合并的表名(如“销售1月”“销售2月”“销售3月”)。
4、右键所选多个查询,选择【合并查询】→【合并为新查询】,保持默认设置,点击【确定】。
5、新生成的合并查询中,“Source.Name”列显示原表名,可将其保留用于后续分类标识;点击该列右侧的展开图标,勾选全部数据列,取消勾选【使用原始列名作为前缀】。
6、检查数据类型是否正确(如日期列应为日期类型),必要时点击列标题右侧的类型图标进行更正。
7、点击【主页】→【关闭并上载至】,选择【现有工作表】或【新工作表】完成加载。
三、使用参数化文件路径实现动态文件夹合并
当需定期更新不同文件夹路径下的数据(如每月新建子文件夹),可通过创建参数控制文件夹路径,避免每次手动修改查询源。该方法提升复用性,适合固定命名规则的归档结构。
1、在Power Query编辑器中,点击【主页】→【高级编辑器】,在空白查询中输入:FolderPath = "C:\Reports\2024\Q1\",然后点击【完成】并重命名为“Param_FolderPath”。
2、新建查询,点击【高级编辑器】,输入:Source = Folder.Files(Param_FolderPath),保存并重命名为“Query_FolderImport”。
3、对“Query_FolderImport”执行与方法一相同的清洗步骤(删除列、提取Content、展开Excel内容等)。
4、后续如需切换文件夹,只需双击“Param_FolderPath”查询,在公式栏中修改路径字符串即可,无需重录整个流程。
5、为防止路径错误导致查询失败,可在“Query_FolderImport”中添加条件筛选:选中“Extension”列,点击【筛选器】→【文本筛选器】→【等于】,输入“.xlsx”,排除非Excel文件。
四、处理列名不一致的多表合并
当各Excel文件或工作表的列名存在差异(如“客户ID”“客户编号”“cust_id”均表示同一字段),直接堆叠会导致列错位或空值。此时需统一列名映射关系,再执行合并。
1、在Power Query编辑器中,先对任一源表执行【转换】→【转置】→【转置】,确认其列名实际顺序与语义对应关系。
2、新建空白查询,点击【高级编辑器】,输入标准列名映射表,例如:StandardColumns = #table({"OriginalName","StandardName"}, {{"客户ID","CustomerID"},{"客户编号","CustomerID"},{"cust_id","CustomerID"}})。
3、在主合并查询中,对每一行数据源添加自定义列,调用函数将原始列名替换为标准列名,使用Table.RenameColumns动态重命名。
4、重命名完成后,使用【合并列】功能将所有表统一为相同结构,再执行堆叠合并(Combine Bin)。
5、合并后点击【转换】→【填充】→【向下】,确保关键标识字段(如客户ID)在跨行数据中不丢失。
到这里,我们也就讲完了《PowerQuery合并文件夹的实用技巧》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
191 收藏
-
146 收藏
-
344 收藏
-
406 收藏
-
246 收藏
-
354 收藏
-
302 收藏
-
143 收藏
-
322 收藏
-
426 收藏
-
271 收藏
-
136 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习