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

Power Query中如何基于当前工作簿单元格值选择目标工作表

简便实现Power Query引用当前工作簿单元格值替换工作表名称

方法一:单元格命名法(推荐,稳定可靠)

  1. 为D15单元格命名
    选中Excel里的D15单元格,点击顶部公式栏左侧的「名称框」,输入自定义名称(比如SheetName),按回车确认即可。

  2. 修改Power Query代码
    在原代码开头新增读取单元格值的步骤,用变量替换硬编码的工作表名称:

// 读取已命名的单元格值
    SheetName = Excel.CurrentWorkbook(){[Name="SheetName"]}[Content]{0}[Column1],
    Source = Excel.Workbook(File.Contents("My File Path"), null, true),
    // 用变量SheetName替换原有的"Parent"
    Target_Sheet = Source{[Item=SheetName,Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Target_Sheet, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Name", type text}, {"DoB", type date}, {"Class", type text}})
in
    #"Changed Type"

方法二:直接定位单元格(无需命名,适合临时场景)

如果不想命名单元格,可直接通过工作表、行/列索引定位D15(注意行/列索引从0开始计数:第15行对应索引14,D列对应第4列):

// 替换"Sheet1"为D15所在的实际工作表名称
    SheetName = Excel.CurrentWorkbook(){[Name="Sheet1"]}[Data]{14}[Column4],
    Source = Excel.Workbook(File.Contents("My File Path"), null, true),
    Target_Sheet = Source{[Item=SheetName,Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(Target_Sheet, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Name", type text}, {"DoB", type date}, {"Class", type text}})
in
    #"Changed Type"

注意事项

  • 方法一的单元格命名不会随行/列位置变动失效,稳定性更强;
  • 方法二中若D15所在的工作表名称、行/列位置发生变化,需同步修改代码里的对应参数;
  • 确保D15单元格的值是目标工作表的准确名称,避免大小写或空格错误导致读取失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:15:12