2017-04-20 42 views
1

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

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

我读过 this post并非常感谢@自动化查询的复制dfresh22功能。但那还不是。

我试图创建一个工作簿的查询,它保存为.xlam,并从第二个工作簿引用xlam。但我找不到任何方法来访问查询。

我运行Excel 2013年

难道我只是在想这个错误的方式?

回答

0

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

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

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

这里有一些问题,这种方法:

  • 某些类型的静态分析的,如用于在当前文件中查找数据源,将无法从文件加载查询工作
  • 文件内容可能会更改,这可能会破坏您的查询或连接到您不知道的来源。
  • 工作簿是便携性较差,因为查询不带它出行。无论你与谁共享工作簿,都必须能够访问带有查询的文本文件。
0

您还可以在github上存储和查询功能。看到这里的例子:https://github.com/tycho01/pquery(文件名为Load.m)

+0

@MaxZelansky,谢谢。我仍然在用PowerQuery进行noob操作,因此我无法将自己的想法包围在Tycho在那里做的事情上。但它回答了我的问题 - 有一种方法可以做到这一点,但它不是PowerBI套件的本地特性。所以它的工作,但有一些小故障和陷阱。因为MS没有预料到这种需求,所以也没有将它编码到PowerQuery/M环境中。这是公平的吗? –

+0

据我所知,有一种功能可以在O365上发布您的查询,然后可以通过其他文件中的链接访问它。但没有尝试,只要我没有O365 –