MS Power Query: совместное использование запросов в книгах и xlam?

Можно ли в Power Query создать запрос в одной книге и получить к нему доступ из другой? В частности, могу ли я встроить целый набор запросов в какую-нибудь библиотеку? Я думаю о, скажем, файле .xlam, а затем несколько файлов .xlsx загружают .xlam и используют запросы

Я действительно хочу воздержаться от копирования и вставки определений запросов из одной книги в другую. Это не обслуживается даже для средних проектов.

Я прочитал этот пост и действительно оценил функцию @ dfresh22 для автоматизации копирования запросов. Но этого все еще нет.

Я попытался создать запрос в книге, сохранив его как .xlam и сославшись на xlam из второй книги. Но я не мог найти способ получить доступ к запросу.

Я использую Excel 2013.

Я просто неправильно об этом думаю?


person David T    schedule 20.04.2017    source источник


Ответы (2)


Один из подходов - хранить запросы где-нибудь в файле, использовать File.Contents для доступа к этому файлу, а затем использовать Expression.Evaluate для содержимого этого файла, как указано в это сообщение в блоге. Шаг будет выглядеть примерно так:

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

#shared - это специальное значение, которое возвращает запись всех запросов и библиотечных функций.

У этого подхода есть некоторые проблемы:

  • Некоторые типы статического анализа, например, используемый для поиска источников данных в текущем файле, не будут работать для запросов, загруженных из файла.
  • Содержимое файла может измениться, что может нарушить ваши запросы или подключиться к источникам, о которых вы не знаете.
  • Книга менее портативна, потому что запросы не перемещаются вместе с ней. Тот, с кем вы делитесь своей книгой, должен иметь доступ к текстовому файлу с вашими запросами.
person Alejandro Lopez-Lago - MSFT    schedule 21.04.2017

Вы также можете хранить запросы и функции на github. см. пример здесь: https://github.com/tycho01/pquery (файл с именем Load.m)

person Max Zelensky    schedule 25.04.2017
comment
@MaxZelansky, спасибо. Мне все еще хватает новичка, работающего с PowerQuery, и я не могу осмыслить, что там делает Тихо. Но он отвечает на мой вопрос - способ сделать это ЕСТЬ, но он не является встроенным в пакет PowerBI. Так что это работает, но с некоторыми сбоями и недоработками. Потому что MS не предвидела такой потребности и не закодировала ее в среде PowerQuery / M. Это честный взгляд? - person David T; 05.05.2017
comment
Насколько мне известно, есть возможность опубликовать ваш запрос в O365, а затем к нему можно будет получить доступ по ссылке в других файлах. Но не пробовал, так как O365 у меня нет - person Max Zelensky; 05.05.2017