You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Query的M脚本如何设置相对路径引用源文件避免移动后失效

解决方案:Power Query 相对路径引用改造

步骤1:新建辅助查询获取当前根目录

该辅助查询会自动读取当前工作簿所在的文件夹路径,作为相对路径拼接的基准:

  • 打开查询所在的Excel工作簿,在任意空白单元格输入公式:=CELL("filename"),按回车后会返回当前文件的完整路径
  • 选中这个单元格,在公式栏左侧的名称框输入CurrentFileFullPath,按回车完成命名
  • 新建空白Power Query查询,命名为GetRootDir,输入以下M代码:
let
    // 读取单元格存储的当前文件完整路径
    Source = Excel.CurrentWorkbook(){[Name="CurrentFileFullPath"]}[Content]{0}[Column1],
    // 提取当前文件所在的文件夹路径(去掉文件名部分)
    RootPath = Text.BeforeDelimiter(Source, "[", 0)
in
    RootPath

步骤2:修改原有查询的路径引用

将原有脚本中的绝对路径替换为「根目录+相对路径」的拼接格式,改造后代码如下:

let
    // 拼接相对位置的目标文件地址
    Source = Excel.Workbook(File.Contents(GetRootDir() & "Source\Tallys.xlsx"), null, true),
    #"Tally_Sheet" = Source{[Item="Tally",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(#"Tally_Sheet", [PromoteAllScalars=true]),
    #"Filter rows to FROM and TO dates" = Table.SelectRows(#"Promoted Headers", each [Date] >= from_date and [Date] <= to_date)
in
    #"Filter rows to FROM and TO dates"

注意事项

  • 移动整套年度文件夹后,打开工作簿时启用内容、刷新查询即可自动适配新路径
  • 工作簿必须先保存后CELL函数才能正常返回路径,未保存的文件会触发路径读取错误
  • 若查询所在工作簿本身存放在子目录,只需调整拼接的相对路径字符串即可适配

内容的提问来源于stack exchange,提问作者BillyJo_rambler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:24:03