如何在Power Query(M语言)中修改指定单元格?多Excel追加场景
批量追加Excel并修改指定单元格的Power Query实现方法
步骤1:导入目标文件夹下的所有Excel文件
- 打开Excel,点击「数据>获取数据>自文件>自文件夹」
- 选择存放目标Excel文件的文件夹,点击「确定」
- 在弹出的文件夹内容窗口,点击「转换数据」进入Power Query编辑器
步骤2:创建自定义修改函数
- 在Power Query编辑器中,点击「主页>新建源>空白查询」,将查询重命名为
ModifyCustom1Row6 - 进入该查询的高级编辑器,替换原有代码为:
let ModifyCell = (inputTable as table) as table => let // 定位Custom1列的索引 ColumnIndex = List.PositionOf(Table.ColumnNames(inputTable), "Custom1"), // 替换第6行的Custom1值为"Bla"(Power Query行索引从0开始,第6行对应索引5) ModifiedTable = if ColumnIndex <> -1 then Table.ReplaceValue(inputTable, each _{ColumnIndex}, (row) => if Table.PositionOf(inputTable, row) = 5 then "Bla" else row{ColumnIndex}, Replacer.ReplaceValue, {"Custom1"}) else inputTable in ModifiedTable in ModifyCell
- 关闭高级编辑器,保存该自定义函数
步骤3:应用函数并批量处理所有文件
- 返回文件夹内容的主查询,点击「添加列>自定义列」,输入公式:
=ModifyCustom1Row6(Excel.Workbook([Content]){0}[Data])注:如果文件有多个工作表,可修改为筛选指定表名的写法,例如
Table.SelectRows(Excel.Workbook([Content]), each [Name] = "Sheet1"){0}[Data] - 点击自定义列右侧的扩展按钮,选择「扩展到新行」
- 按需移除不需要的辅助列(如文件名、路径等),点击「关闭并上载」完成数据导入
注意事项
- 确保所有目标Excel文件都包含"Custom1"列,否则函数会跳过该文件的修改操作
- 若Excel表头不是第一行,需先在Power Query中设置正确的表头后再执行上述操作
内容的提问来源于stack exchange,提问作者symkly
相关产品推荐
相关产品推荐

