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

如何通过Power Query获取其他查询的可刷新M代码?

问题:如何通过Power Query自动获取其他查询的M代码?

能否通过Power Query返回其他查询的M代码?这里并非指手动在Power Query编辑器中选择Reference、Duplicate或Advanced Editor,而是希望Query2的结果能包含Query1的M代码(如let Source =...),且当Query1变更时可自动刷新。

在Excel中,可通过VBA的ActiveWorkbook.Queries(x).Formula获取查询代码,但需将其加载到表格再导入查询,且每次查询更新都需重新运行VBA。

在Power BI中,可使用DMVs获取查询代码及依赖关系,相关语句如下:

select * from $SYSTEM.TMSCHEMA_PARTITIONS;
select * from $SYSTEM.TMSCHEMA_EXPRESSIONS;
select * from $SYSTEM.DISCOVER_CALC_DEPENDENCY;

但在Power BI Desktop中,使用DMVs需连接localhost:12345这类随机端口,目前尚无无需手动更新端口的便捷可重复方法。

通过#shared或#sections可获取当前文件的所有查询列表,但这些命令仅返回查询结果而非查询代码本身。

请问是否存在通过查询获取其他查询M代码的方法?

可行方案说明

目前没有纯Power Query原生的方法能直接获取其他查询的M代码并自动刷新,但可以通过以下优化方案实现近似需求:

Excel环境下的优化

  • 编写VBA脚本遍历所有查询,将ActiveWorkbook.Queries(x).Formula的内容写入指定工作表
  • 设置VBA自动触发条件(如工作簿打开时、查询更新后),无需手动运行脚本
  • 在Power Query中引用该工作表,即可让Query2随Query1的M代码变更自动刷新

Power BI环境下的替代方案

  • Power BI REST API(仅云端服务):调用API获取数据集的查询定义,直接拿到M代码,支持自动刷新,但需配置API权限,本地Desktop无法使用
  • 第三方工具辅助:用Tabular Editor等工具批量导出查询M代码,再将导出内容导入Power Query作为数据源,但仍需手动触发导出,无法完全自动同步

关键结论

如果追求完全自动、纯Power Query内实现,目前没有可行方案。只能通过VBA(Excel)或API/第三方工具(Power BI)的组合方式,实现近似的自动同步效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:37:21