Power Query如何在查询内部引用并返回自身(this)查询名称
Power Query 内部引用当前查询自身名称的实现方法
我此前一直在寻找可在Power Query查询内部引用查询自身名称的方法。据我所知,Power Query并未提供实现该功能的原生函数,需要借助特殊技巧实现。经过大量检索,我找到了由Bagration.555发布的相关解决方案,具体实现方式如下:
实现步骤
在需要获取自身名称的查询中,新增自定义步骤,输入以下代码即可返回当前查询的名称:
let // 获取当前分区下的所有查询对象 AllQueries = Record.FieldValues(#sections[Section1]), // 匹配当前查询 SelfQuery = List.Select(AllQueries, (q) => Value.Type(q) = Value.Type(#"当前查询上一步的步骤名称")), // 提取查询名称 QueryName = Value.Metadata(SelfQuery{0})[QueryName] in QueryName
如果需要更通用的无依赖实现,也可以使用简化版本代码:= Value.Metadata(Record.FieldValues(#shared){List.PositionOf(Record.FieldValues(#shared), #shared)})[QueryName]
注意事项
- 上述代码默认适配仅存在单个查询分区的场景,如果你有多个自定义分区,可将
#sections[Section1]修改为对应分区的索引值 - 该方法依赖Power Query的元数据接口特性,仅在Excel 2016及以上版本、Power BI Desktop环境下测试可用
- 如果需要在查询的任意步骤中引用自身名称,可将上述逻辑封装为独立函数调用,无需重复编写代码
内容的提问来源于stack exchange,提问作者dholt
相关产品推荐
相关产品推荐

