Страницы: 1
RSS
Power Qwery - подгружать один и тот же файл с разными названиями
 
Добрый день.
Задача такая - в папку у меня каждый день скачивается отчет, но имя этого отчета всегда разное, но структура одинаковая.
Можно ли сделать чтобы Power Qwery подгружал файл с любым именем из этой папки?
Пробовал делать загрузку данных из папки - но там фигурирует ИМЯ файла, поэтому при изменении имя файла - в power qwery он больше не грузится.
Есть варианты?
 
Что-то не верится. При подгрузке из папки берется ВЕСЬ контент папки. Имя файла будет только если Вы на него конкретно фильтр поставите при загрузке.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Он берет весь контент, но я потом выбираю файл и лист в нем и он проставляет название файлов.
Мой порядок действий:
1. Выбираю папку - https://yadi.sk/i/84darIbN3MY7xC
2. Далее нажимаю на Binari и открываются все листы в этом файле - https://yadi.sk/i/VdgUi1ie3MY7zo
3. Нажимаю на Новосибирск.

В результате таких действий и проставляется путь у файлу.
Если не нажимать и просто подгружать файлы - то он их открывает списком, самих данных нет - https://yadi.sk/i/ez0s7iBk3MY85u

Может я просто не правильно делаю?
Изменено: dennn - 03.02.2019 00:28:09
 
Добрый день. Сам недавно узнал о Power Query. Поделюсь ссылками, которые должны вам помочь. Раз и два. В комментариях ко второму видео есть еще полезные ссылки, а вот к нему примеры. Неплохая подборка собрана  под спойлером#104. У вас в названии ошибка Power Qwery/Query.
 
Доброе время суток.
Цитата
один и тот же файл с разными названиями
Под этим подразумевается копии файла. Если изменить хотя бы один байт в содержимом копии, то это уже не тот же самый файл :)
Объясните проблему не прибегая к PQ. Открываю в проводнике папку с файлами Excel и поэтому и поэтому определяю, что это требуемый файл для обработки запросом. Так будет понятно всем отвечающим.
 
Excel 2019. Загрузка из папки. В папке книги с разными названиями. Если листы в книге имеют одинаковое название и вначале запроса в Навигаторе для примера я выбираю Лист, то все нормально. Но когда во второй книге поменял название листа на Продажи1, на нем Error.
Также если вначале в Навигаторе для примера выбрать таблицу, то Error гораздо больше, т.к. имена таблицам присваивались автоматом и они разные.
Как поправить запрос выгрузки из папки с разными именами книг, листов и таблиц?
 
Shima, Вы где? ссылка на видео не рабочая. закиньте, пожалуйста, если найдетесь, на облако, а ссылку сюда.
 
alpopo, сколько листов в каждой книге? Прикрепите архив с парой-тройкой файлов и с примером результата, который надо получить. Сразу вам станет проще помогать.
Вот горшок пустой, он предмет простой...
 
Цитата
dennn написал:
но там фигурирует ИМЯ файла
. Кажется, я понял. Вы взяли пример из статьи на этом сайте, где делается функция из запроса, которая по полному пути файла берет из него таблицу.

Если так, то в качестве аргумента берите имя файла, а полный путь склеивайте в функции:
Код
(filename) =>
   ..... "c:\work\" & filename ... 
Изменено: Alexey_Spb - 03.02.2019 11:00:05
 
Цитата
PooHkrd написал:
сколько листов в каждой книге? Прикрепите архив
Во всех 1 - Продажи, но во втором - Продажи1, в остальных по одному, Продажи.
Пытался решить вопрос штатными средствами - консолидация из Папки - ОбъединитьИзменить.
Запрос с параметрами, функциями сформирован автоматом
Вопрос в том, можно ли его поправить?
Что это за элемент Пример файла?
Изменено: alpopo - 04.02.2019 00:23:14
 
А запрос в файле где?
 
Цитата
Alexey_Spb написал:
А запрос в файле где?
Запрос на картинке. И в Пример.zip (158.32 КБ) там и папка и запрос
В каждой книге по одному листу. (4 листа это я уже усложнял и таки другими ручными методами решил)
Результат - это уже решение для папки и книг с любым количеством листов
Изменено: alpopo - 04.02.2019 00:21:09
 
Цитата
alpopo написал:
Запрос на картинке.

Здесь принято выкладывать подготовленные примеры в формате Excel, а не картинки.
 
Цитата
Alexey_Spb написал:
Здесь принято выкладывать подготовленные примеры в формате Excel,
Ну так все в
Цитата
alpopo написал:
в  Пример.zip  (158.32 КБ) там и папка с данными и запрос PQ в книге Продажи.xlsx
Итоговый запрос
Код
let
    Источник = Folder.Files("D:\Пример\ПродажиТабл"),
    #"Отфильтрованные скрытые файлы1" = Table.SelectRows(Источник, each [Attributes]?[Hidden]? <> true),
    #"Вызвать настраиваемую функцию1" = Table.AddColumn(#"Отфильтрованные скрытые файлы1", "Преобразовать файл из ПродажиТабл", each #"Преобразовать файл из ПродажиТабл"([Content])),
    #"Переименованные столбцы1" = Table.RenameColumns(#"Вызвать настраиваемую функцию1", {"Name", "Source.Name"}),
    #"Другие удаленные столбцы1" = Table.SelectColumns(#"Переименованные столбцы1", {"Source.Name", "Преобразовать файл из ПродажиТабл"}),
    #"Столбец расширенной таблицы1" = Table.ExpandTableColumn(#"Другие удаленные столбцы1", "Преобразовать файл из ПродажиТабл", Table.ColumnNames(#"Преобразовать файл из ПродажиТабл"(#"Пример файла"))),
    #"Измененный тип" = Table.TransformColumnTypes(#"Столбец расширенной таблицы1",{{"Source.Name", type text}, {"Категория", type text}, {"Наименование", type text}, {"Дата", type date}, {"Сумма", type number}, {"Менеджер", type text}, {"Заказчик", type text}})
in
    #"Измененный тип"


Но там, как видно на картинке, и функция и предварительный запрос. Аналогично ручной методике предложенной Павловым
Изменено: alpopo - 04.02.2019 11:26:46
 
Откройте запрос под именем "Преобразовать пример файла из ПродажиТабл"
и вставьте туда такой код:
Код
let
    Источник = Excel.Workbook(#"Параметр файла примера1", null, true),
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([Kind] = "Sheet")),
    Продажи_Sheet = #"Строки с примененным фильтром"{0}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Продажи_Sheet, [PromoteAllScalars=true]),
    #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Категория", type text}, {"Наименование", type text}, {"Дата", type date}, {"Сумма", type number}, {"Менеджер", type text}, {"Заказчик", type any}})
in
    #"Измененный тип"

Именно в этом запросе показывается каким образом нужно обработать каждый файл в папке, перед тем как собрать их все вместе. Предупреждаю, что данный вариант обработки даст корректный результат, только в том случае если в каждом файле имеется один лист с данными, без разницы с каким названием. Если это не так, то за результаты я не отвечаю, ибо вот эту фразу я не понял.
Цитата
alpopo написал:
Во всех 1 - Продажи, но во втором - Продажи1, в остальных по одному, Продажи.
Вот горшок пустой, он предмет простой...
 
PooHkrd,
Да стало работать для одного листа в книге.
Добавил Листы в книги из папки с данными.
Сделал авто запрос с Объединить-Изменить вставил ваш код.
В результате выгрузился только один Лист (первый) из каждой Книги.

А хотелось бы выгрузить все листы как в Результат.xlsx
Т.е. из Папки все Книги - все имеющиеся в книге Листы
Изменено: alpopo - 04.02.2019 12:18:23
 
alpopo, тогда в тот же запрос вставляйте код:
Код
let
    Источник = Excel.Workbook(#"Параметр файла примера1", null, true),
    #"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([Kind] = "Table")),
    ЗаголовкиВверх = Table.TransformColumns(#"Строки с примененным фильтром", {{"Data", each Table.PromoteHeaders(_, [PromoteAllScalars=true]), type table}}),
    СборТаблицСоВсехЛистов = Table.Combine( ЗаголовкиВверх[Data] )
in
    СборТаблицСоВсехЛистов

Надеюсь говорить, что содержимое всех листов должно быть одинаковым по структуре, излишне? Тем не менее, если по какому либо признаку надо будет какие-то наименования убрать, то это вы можете сделать самостоятельно на шаге #"Строки с примененным фильтром".
Изменено: PooHkrd - 04.02.2019 12:31:07
Вот горшок пустой, он предмет простой...
 
PooHkrd, СПАСИБО! Данные выгружаются все. не совсем корректно. но это уже детали.
Мысли шевелятся, еще раз спасибо!
Страницы: 1
Наверх