MS Power Query: совместное использование запросов в книгах и xlam?
Можно ли в Power Query построить запрос в одной книге и получить к нему доступ из другой? В частности, могу ли я встроить целый набор запросов в какую-то библиотеку? Я имею в виду, скажем, файл.xlam, а затем несколько файлов.xlsx загружают.xlam и используют запросы
Я действительно хочу держаться подальше от копирования и вставки определений запросов из одной рабочей книги в другую. Это не поддерживаемо даже для проектов среднего размера.
Я прочитал этот пост и высоко оценил функцию @dfresh22 для автоматизации копирования запросов. Но это все еще не там.
Я попытался создать запрос в рабочей книге, сохранить его в формате.xlam и сослаться на xlam из второй рабочей книги. Но я не мог найти способ получить доступ к запросу.
Я использую Excel 2013
Я просто думаю об этом неправильно?
2 ответа
Один из подходов заключается в том, чтобы где-то хранить запросы в файле, использовать File.Contents для доступа к этому файлу, а затем использовать Expression.Evaluate для содержимого этого файла, как упомянуто в этом сообщении в блоге. Шаг будет выглядеть примерно так:
Expression.Evaluate(Text.FromBinary(File.Contents(file_path_to_file_with_queries)), #shared)
#shared
это специальное значение, которое возвращает запись всех запросов и библиотечных функций.
Есть несколько проблем с этим подходом:
- Некоторые типы статического анализа, например, используемые для поиска источников данных в текущем файле, не будут работать для запросов, загруженных из файла.
- Содержимое файла может измениться, что может нарушить ваши запросы или подключиться к источникам, о которых вы не знаете.
- Рабочая книга менее переносима, потому что запросы не идут вместе с ней. Тот, с кем вы делитесь своей книгой, должен иметь доступ к текстовому файлу с вашими запросами.
Вы также можете хранить запросы и функции на GitHub. см. пример здесь: https://github.com/tycho01/pquery (файл с именем Load.m)