Новая статья: Параметризация путей к данным в Power Query

Если вы уже начали использовать в работе инструменты бесплатной надстройки Power Query в Microsoft Excel, то очень скоро столкнётесь с одной узкоспециальной, но весьма частой и надоедливой проблемой, связанной с постоянно ломающимися ссылками на исходные данные. Суть проблемы в том, что если в своём запросе вы ссылаетесь на внешние файлы или папки, то Power Query жёстко прописывает абсолютный путь к ним в тексте запроса.

У вас на компьютере всё работает прекрасно, но если вы решите отправить файл с запросом своим коллегам, то их ждёт разочарование, т.к. у них на компьютере путь к исходным данным уже другой, и наш запрос работать не будет.
Что же сделать в такой ситуации? Давайте разберемся.


Читать статью полностью
12 Февраля 2019 14:34
Вы показали путь, когда этот самый путь пользователю надо настраивать.
Вероятно, есть и другой способ... когда не надо. При условии что все данные лежат в одной папке, как это часто и бывает.

1) Для этого на втором листе книги, куда загружаем данные, в ячейку A1, например, надо записать формулу:

=ЛЕВСИМВ(ЯЧЕЙКА("имяфайла";$A$1);НАЙТИ("[";ЯЧЕЙКА("имяфайла";$A$1);1)-1)

которая вернет путь к файлу активной книги, и присвоить этой ячейке какое-то имя: например, "FilePath".
Примечание: в примере ниже использованы файл данных с именем "Data.xlsx" и произвольный путь.
2) При редактировании M-кода запроса в Power Query следует заменить:

строку
Источник = Excel.Workbook(File.Contents("D:\Informatics\Office\Excel\UserData\Data.xlsx"), null, true),

на строки

FilePath = Excel.CurrentWorkbook(){[Name="FilePath"]}[Content]{0}[Column1],
FullPath = FilePath & "Data.xlsx",
Источник = Excel.Workbook(File.Contents(FullPath), null, true),

И всё. Больше никаких забот. Файл обработки данных и сам файл с данными храним в одной папке, где угодно.
Перетащите свою папку в другое место... Измените имя папки...

Однако, это способ, хотя и удобен в большинстве случаев, не позволяет изменять имя файла (только путь). В Вашем же примере можно менять путь к файлу вместе с именем самого файла с данными.
Очевидно, оба способа имеют право на жизнь.
Наверх