Страницы: Пред. 1 2
RSS
Power query и настройка линка между папками и таблицами через DropBox
 
Цитата
bonjour3 написал:
Может я что-то упустила при использовании формул и функций
Вот-вот, без примера того что вы указали в строке, которая тянется в запрос и кода самого запроса крайне сложно понять что вы в них упустили.
Вот горшок пустой, он предмет простой...
 
1. Как и описано в способе Д.Щербакова и на другом видео, которое я нашла, сначала создала доп лист в файле с отчетными данными по проекту и указала формулу с ссылкой на файл, откуда тянутся данные в файл с отчетами, а именно -
=LEFT(CELL("filename",$A$1),FIND("[",CELL("filename",$A$1),1)-1)&"PRICELIST_LYS.xlsx"

Путь к файлу PRICELIST_LYS с моего компа выглядит так - C:\Users\Ekaterina Churilova\Dropbox (lys energy solutions)\LYSES - Operations\- Knowledge Management\Pricelist\PRICELIST_LYS.xlsx)

Далее эту формулу я преобразовала в таблицу, как и было сказано.

2. В этом же файле я создала query на основе этой таблицы с формулой.
   Указала Excel.CurrentWorkbook(){[Name="tPath"]}[Content]{0}[Path]

  Те как я понимаю, это каким-то образом содержит путь к папке и файлу (C:\Users\Ekaterina Churilova\Dropbox (lys energy solutions)\LYSES - Operations\- Knowledge Management\Pricelist\PRICELIST_LYS.xlsx))

3. Далее пошла в ранее созданный query (того же файла с отчетами по проектам), который тянет данные из файла PRICELIST_LYS  и внесла изменения в графе advanced editor в строку source.
Те до изменения выглядело так -
let
   Source = Excel.Workbook(File.Contents("C:\Users\Ekaterina Churilova\Dropbox (lys energy solutions)\LYSES - Operations\- Knowledge Management\Pricelist\PRICELIST_LYS.xlsx"), null, true),
   #"Pricelist LYS_Sheet" = Source{[Item="Pricelist LYS",Kind="Sheet"]}[Data],
   #"Promoted Headers" = Table.PromoteHeaders(#"Pricelist LYS_Sheet", [PromoteAllScalars=true]),
   #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Product List Category", type text}, {" Short Description", type text}, {"Long Description", type text}, {"UoM", type text}, {"Currency", type text}, {"WP  #(lf)(only for modules and mounting structure)", type any}, {"Cost for Wp #(lf)(only for modules & mounting structure)", type any}, {"Unit Cost without taxes", type number}, {"Cost Date", type date}, {"Cost Source (Supplier)", type text}, {"BRAND", type text}, {"Cost Remarks", type any}, {"Cost Category", type any}, {"Adjust %", type any}, {"FRT %", type any}, {"WHS %", type any}, {"SPR %", type any}, {"SKU+L:R", type any}, {"comments", type text}, {"Added date", type text}, {"Column21", type any}})
in
   #"Changed Type"

А после внесения изменений Source выглядит так -
let
   //Source = Excel.Workbook(File.Contents("C:\Users\Ekaterina Churilova\Dropbox (lys energy solutions)\LYSES - Operations\- Knowledge Management\Pricelist\PRICELIST_LYS.xlsx"), null, true),
   Source = Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="tPath"]}[Content]{0}[Path]), null, true),
   #"Pricelist LYS_Sheet" = Source{[Item="Pricelist LYS",Kind="Sheet"]}[Data],
   #"Promoted Headers" = Table.PromoteHeaders(#"Pricelist LYS_Sheet", [PromoteAllScalars=true]),
   #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Product List Category", type text}, {" Short Description", type text}, {"Long Description", type text}, {"UoM", type text}, {"Currency", type text}, {"WP  #(lf)(only for modules and mounting structure)", type any}, {"Cost for Wp #(lf)(only for modules & mounting structure)", type any}, {"Unit Cost without taxes", type number}, {"Cost Date", type date}, {"Cost Source (Supplier)", type text}, {"BRAND", type text}, {"Cost Remarks", type any}, {"Cost Category", type any}, {"Adjust %", type any}, {"FRT %", type any}, {"WHS %", type any}, {"SPR %", type any}, {"SKU+L:R", type any}, {"comments", type text}, {"Added date", type text}, {"Column21", type any}})
in
   #"Changed Type"


Надо отметить, что файл PRICELIST_LYS откуда тянутся данные в файл с отчетами никуда перемещаться не планирует, название файла меняться не будет и будет лежать всегда  в папке C:\Users\Ekaterina Churilova\Dropbox (lys energy solutions)\LYSES - Operations\- Knowledge Management\Pricelist\PRICELIST_LYS.xlsx

А вот файл, куда тянутся данные из PRICELIST_LYS, а именно файл с отчетами по проектам, будет постоянно перемещаться, переименовываться, плодиться и размножаться. Идея в том, чтобы при изменении цен, они автоматов подтягивались в отчетные файлы и это было бы автоматически при открытии файлов для ВСЕХ сотрудников. Пока только через мой комп это происходит и остальные ждут, пока я открою файл и обновлю его.
 
bonjour3, оформляйте код при помощи кнопки <...>.
 
Цитата
Юрий М написал:
bonjour3 , оформляйте код при помощи кнопки  .
<>
Куда поставить?

PS Извините, я начинающий юзер.  
 
bonjour3, ищите такую кнопку (см. скрин).
 
Цитата
bonjour3 написал:
будет и будет лежать всегда  в папке C:\Users\Ekaterina Churilova\Dropbox (lys energy solutions)\LYSES - Operations\- Knowledge Management\Pricelist\PRICELIST_LYS.xlsx
а откуда у других пользователей появится доступ к этому пути? С - это же локальный диск. Все на Вашем ПК будут, что ли?
Если есть возможность - то надо выложить тогда этот файл на тот же Google, дать доступ всем нужным пользователям и запросом забирать данные уже из Googlа.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, этот файл и так лежит на дропбоксе, и у каждого юзера есть копия связанная с облаком в его личной папке. Спорная на мой взгляд схема - вывалили бы на сетевой диск с ограниченным доступом и нет проблемы.
Но теперь ТСу нужно чтобы запрос PQ сам опознавал имя юзера, который открыл файл, и сам таким образом формировал путь к файлу в личной папке этого юзера. Самый надежный вариант решения предложил Андрей VG, но ТС решил пойти своим неправильным путем. Почему - ХЗ.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Но теперь ТСу нужно чтобы запрос PQ сам опознавал имя юзера, который открыл файл, и сам таким образом формировал путь к файлу в личной папке этого юзера. Самый надежный вариант решения предложил Андрей VG, но ТС решил пойти своим неправильным путем. Почему - ХЗ.
Я воспользовалась путем Д.Щербакова, тк этот вариант был для меня самым понятным пока и я изначала думала, что он сработает.

Вы говорите про варианты 1. Сделать отчёт с udf-функцией  и 2. Сделать vbscript со следующим кодом ? Эти 2 варианта через VBA?
 
1 путь через VBA(файл должен будет быть сохранен с поддержкой макросов и макросы у пользователей должны быть разрешены)
2 путь через создание исполняемого файла типа VBScript. Делается из обычного текстового файла:
  1. создаем пустой текстовый файл
  2. записываем в него приведенный код
  3. сохраняем файл
  4. закрываем
  5. переименовываем как удобно и изменяем расширение .txt на .vbs.
Далее файл будет отрабатывать при двойном щелчке мыши на нем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Добрый день,

Cпасибо большое за пошаговое объяснение.  Файл создала, расширение поменяла.
Нужно ли еще какие-то коды прописывать в файле с power query? Может есть какая более подробная инструкция, уже существующий кейс, равнозначный моей задачи? Я извиняюсь, но я не понимаю, какие дальнейшие шаги нужно сделать после создания файла vbs. Файл с Power query  у меня пока без изменений.
 
Файл "C:\Users\Ekaterina Churilova\Dropbox (lys energy solutions)\LYSES - Operations\- Knowledge Management\Pricelist\PRICELIST_LYS.xlsx" в общем доступе?
OfficeProPlus 365x64
Win64forWorkstation
 
Кнопка цитирования не для ответа [МОДЕРАТОР]

да, для тех, кому он нужен, доступ открыт в папку
 
Т.е. у Вас в дропбоксе лежит и файл-источник.
Вы обновляете файл-источник по расписанию у себя на компьютере.
Файл синхронизируется через облако со всеми локальными копиями у всех тех пользователей, которые имеют к нему доступ.
У этих же пользователей есть созданный Вами файл с запросом (запросами), который обращается к файлу-источнику.
Этот файл с запросом лежит также в дропбоксе.
Так?
Изменено: vector1 - 02.09.2018 19:47:56
OfficeProPlus 365x64
Win64forWorkstation
 
Да, все верно, все лежит в дропбоксе
 
Создаете в файле-запросе отдельный лист с таблицей. Все делаете пошагово, как описано в варианте 2 от Дмитрия Щербакова (https://www.excel-vba.ru/chto-umeet-excel/otnositelnyj-put-k-dannym-powerquery/).
У меня она выглядит так.
Изменено: vector1 - 02.09.2018 20:36:15
OfficeProPlus 365x64
Win64forWorkstation
 
Далее двигаетесь по алгоритму, прописанному Дмитрием Щербаковым.
На выходе в запросе в качестве источника у Вас будет фигурировать относительный путь к этому файлу-источнику.
У меня этот путь выглядит так в запросе (см.картинку)
"Источник ДДС" - это та папка, в которой лежит файл-источник.
Если Ваш файл-источник лежит в той же папке, в которой лежит файл с запросом, то путь к источнику будет выглядеть так:
Источник = Folder.Files(Excel.CurrentWorkbook(){[Name="Parameters"]}[Content]{0}[Значение])
Изменено: vector1 - 02.09.2018 20:45:34
OfficeProPlus 365x64
Win64forWorkstation
 
После всех этих манипуляций Вы даете доступ к файлу с запросом новому пользователю.
И у него появляется возможность обновляться со своего компьютера, обращаясь к файлу источнику, локальная копия которого также лежит в его дропбоксе на его компьютере.
OfficeProPlus 365x64
Win64forWorkstation
 
Нет,  файл-источник лежит в другой папке, не в той, в которой лежит файл с запросом
 
bonjour3, что-то у вас проблемы с построением путей.
Пусть синхронизируемый файл лежит у первого пользователя
"C:\UsersFolder\User1\Dropbox\Source files\Databook.xlsx"
а у второго
"C:\UsersFolder\User2\Dropbox\Source files\Databook.xlsx"
то есть, путь к этому файлу отличается только именем пользователя.
Пусть файлы с запросами к этому файлу Databook.xlsx лежат где-то внутри "C:\UsersFolder\User2\Dropbox\" и "C:\UsersFolder\User1\Dropbox\" в подпапках произвольной глубины. Тогда путь к файлу Databook.xlsx легко востанавливаются. так как имеют общий начальный путь (выделено красным).
В архиве макет такой конструкции. Естественно, Users заменено на UserFolder.
 
Цитата
bonjour3 написал:
Нет,  файл-источник лежит в другой папке, не в той, в которой лежит файл с запросом
неважно
если файл-источник и файл с запросом будут лежать в дропбоксе, все должно работать
OfficeProPlus 365x64
Win64forWorkstation
Страницы: Пред. 1 2
Наверх