MS Power Query:跨工作簿和xlam共享查询?

时间:2017-04-20 18:38:09

标签: excel powerquery xla

在Power Query中,是否可以在一个工作簿中构建查询并从另一个工作簿中访问它?特别是,我可以在某种库中构建一整套查询吗?我想一个.xlam文件,然后有多个.xlsx文件加载.xlam并使用查询

真的希望远离将查询定义从一个工作簿复制粘贴到另一个工作簿。即使是中型项目也无法维持。

我已阅读 this post并非常感谢@ dfresh22函数自动复制查询。但那还不存在。

我尝试在工作簿中创建查询,将其另存为.xlam,并从第二个工作簿引用xlam。但我找不到任何方法来访问查询。

我正在运行Excel 2013。

我只是想错了吗?

2 个答案:

答案 0 :(得分:1)

一种方法是将查询存储在某个文件中,使用File.Contents访问该文件,然后对该文件的内容使用Expression.Evaluate,如this博客文章中所述。这一步看起来像这样:

Expression.Evaluate(Text.FromBinary(File.Contents(file_path_to_file_with_queries)), #shared)

#shared是一个特殊值,它返回所有查询和库函数的记录。

这种方法存在一些问题:

  • 某些类型的静态分析(例如用于在当前文件中查找数据源的静态分析)对于从文件加载的查询不起作用
  • 文件内容可能会更改,这可能会破坏您的查询或连接到您不了解的来源。
  • 由于查询不随身携带,因此工作簿的可移植性较差。无论您与谁共享工作簿,都必须能够通过查询访问文本文件。

答案 1 :(得分:0)

您还可以在github上存储查询和函数。请参阅此处的示例:https://github.com/tycho01/pquery(名为Load.m的文件)