【问题标题】:How can I reference a cell's value in PowerQuery如何在 PowerQuery 中引用单元格的值
【发布时间】:2015-01-15 08:15:31
【问题描述】:

我有多个 PowerQuery 查询,我想在我的 Excel 文件中提供一个单元格的值。在这种特殊情况下,源文件名的完整路径。

有什么方法可以让我进入 PowerQuery 吗?

【问题讨论】:

    标签: excel parameter-passing powerquery m


    【解决方案1】:

    这可以使用命名范围和 PowerQuery 中的自定义函数来实现:

    1. 为需要引用的单元格命名(在编辑栏左侧的文件中输入名称) - 例如SourceFile
    2. 插入一个新的空白 PowerQuery 查询(PowerQuery 功能区 -> 来自其他来源)
    3. 在 PowerQuery 编辑器中,转到查看 -> 高级编辑器并粘贴以下代码;
    (范围名称) => Excel.CurrentWorkbook(){[Name=rangeName]}[Content]{0}[Column1]
    1. 将查询命名为GetValue(右侧查询设置窗格中的名称属性)

    现在您可以使用 GetValue(cellName) 访问查询中的命名单元格 - 例如

    = Excel.Workbook(File.Contents(GetValue("SourceFile")))

    【讨论】:

    • 例如如果单元格被命名为“Year”,那么该值可以被提取为 -:Excel.CurrentWorkbook(){[Name="Year"]}[Content]{0}[Column1]
    • 如何更改数据类型?我正在尝试将参数的值与文本进行比较,但它显示“无法将值 转换为类型文本”
    • @james5 您可以将命令包装为任何强制函数,例如Text.From(GetValue("yourRange"))Number.ToText(GetValue(...),...)(见 Text.FromNumber.ToText
    • @TylerH (rangeName) => 表示法使其成为可以从其他查询调用的函数(带有一个参数rangeName
    • @Corepuncher 这是您通常看到当前单元格地址显示的地方,例如D12。您可以选择任何单元格(或单元格范围),只需在其中键入名称即可将其分配给命名范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多