如何在Excel中使用Power Query通过命名范围批量提取多文件单个单元格内容
Power Query 批量提取指定命名范围内容操作步骤
前置准备:统一设置命名范围
- 打开任意一份同模板表单,选中需要提取的目标单元格(比如存储姓名的A2、存储手机号的B3等),在Excel左上角公式栏左侧的名称框中输入自定义命名,比如姓名对应设为
User_Name、手机号对应设为User_Mobile,按回车确认。 - 确保所有待提取的10份表单都配置了完全相同的命名范围,如果是已经填写完成的存量表单,可以通过宏批量统一配置命名范围,避免逐个手动修改。
操作步骤
- 打开用于存放汇总结果的空白Excel,点击「数据」→「获取数据」→「自文件」→「自文件夹」,选择存放10份表单的目标文件夹,确认后Power Query会自动加载出该文件夹下所有文件的元数据列表。
- 清理元数据字段,仅保留「文件名」和「文件路径」两个字段即可,删除其他不必要的字段减少运算量。
- 点击「添加列」→「自定义列」,输入如下公式提取对应命名范围的内容:
= Excel.Workbook(File.Contents([Folder Path] & [Name]), null, true){[Item="替换成你设置的命名范围名", Kind="DefinedName"]}[Data]
需同时提取多个字段的话,重复添加自定义列,每次修改公式里的命名范围名称即可。
- 新增的自定义列每格都是嵌套的表格值,点击列标题右上角的展开按钮,取消勾选「使用原始列名作为前缀」,确认后即可把单元格的实际内容提取为独立列。
- 所有字段提取完成后,点击「关闭并上载」,汇总结果会自动导入到当前Excel工作表中,后续新增同模板表单时只需右键刷新数据即可自动完成更新。
容错优化
如果部分文件可能存在缺失命名范围的情况,把自定义列公式替换为容错版本即可避免查询报错:
= try Excel.Workbook(File.Contents([Folder Path] & [Name]), null, true){[Item="替换成你设置的命名范围名", Kind="DefinedName"]}[Data] otherwise null
内容的提问来源于stack exchange,提问作者Abs7778
相关产品推荐
相关产品推荐

