Страницы: 1
RSS
Добавить название файла в отдельный столбец в Power Query
 
не нашел ответ на форуме, может плохо искал. HELP

При открытие книги выбираю лист с данными и нужен отдельный столбец с названием файла.
Прописать название файла на листе и потом он подтянется в query - не подходит :)
Изменено: vikttur - 26.06.2021 00:48:45
 
Salvator, вы когда открываете книгу, в адресе же явно прописываете название файла? В чем проблема создать столбец с этим же названием?
Вот горшок пустой, он предмет простой...
 
Когда я открываю книгу, у меня появляются названия столбов, но никак не книги. Если это легко, просьба сделать это на прикрепленном файле.  
 
Цитата
Salvator написал:
Когда я открываю книгу, у меня появляются названия столбов
может я чего не понимаю, но в шаге Источник запроса у Вас это:
Код
= Excel.Workbook(File.Contents("\\maytea.com\DFS\RDS-Docs\OLyashko\Desktop\Срез.xlsx"), null, true)
Но я так понимаю, что Вы не сами это вписываете и хотите как-то автоматом вытащить?
Если же нужды вытягивать автоматом нет, то можно сделать и так:
Код
let
    filename = "Срез.xlsx",
    Источник = Excel.Workbook(File.Contents("\\maytea.com\DFS\RDS-Docs\OLyashko\Desktop\"&filename), null, true),
    Sheet1_Sheet = Источник{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Added Custom" = Table.AddColumn(Sheet1_Sheet, "Пользовательский", each filename)
in
    #"Added Custom"
Изменено: Дмитрий(The_Prist) Щербаков - 18.06.2021 15:12:56
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо. Но нужно автоматом чтобы менялось, потому что файлов много с разными названиями  
Изменено: Salvator - 18.06.2021 15:18:05
 
В какой ячейке название файла?
 
Цитата
Salvator написал:
Но нужно автоматом чтобы менялось
Дык объясните каким таким автоматом оно у вас в запросе меняется, чтобы было понятно как этот автомат применить помогающим.
Вот горшок пустой, он предмет простой...
 
Так я не говорил, что у меня автоматом меняется название файла, где я такое написал?
Предположим, что это шаблонный файл, который рассылается "Ответственным" по началу он носит название "Срез", а приходит с названиями "петров", "иванов", "сидоров" и нужно, чтобы у меня в обработке было не закреплено название "срез", а был столбец с названием файла: у петрова - петров, у сидорова - сидоров. А не у всех - "срез".  
Изменено: vikttur - 26.06.2021 00:49:00
 
Цитата
Salvator написал:
нужно автоматом чтобы менялось
на что? Этот автомат должен найти любой файл Excel на диске и обратиться к нему? Или может есть какая-то более логичная схема определения файла для открытия? Вы из самого файла обращаетесь к нему же, если я правильно понял? Или это может быть и другой файл?
Вполне возможно, что Вам помогут параметры: Относительный путь к данным PowerQuery
лучше, кончено, через создание формулы ЯЧЕЙКА, можно даже на скрытом листе, чтобы не пугать пользователей. Это будет полный автомат определения имени файла и пути и всего, чего надо.
Изменено: Дмитрий(The_Prist) Щербаков - 18.06.2021 15:44:36
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,
ну походу действительно проще создать в ячейке формулу...  
 
Цитата
Salvator написал:
нужно, чтобы у меня в обработке было не закреплено название "срез",
Открою вам страшную тайну, у вас в запросе уже закреплено название срез. В самом первом шаге.
Если название файла заранее неизвестно, но есть логика отбора нужного файла из списка, то нужно использовать либо запрос к папке с файлами и там уже фильтровать.
Либо статью от Дмитрия постом выше.
Вот горшок пустой, он предмет простой...
 
PooHkrd, спасибо большое :) жаль, что вы так и не нашли время написать, как решить данную задачу.
А за Просветительскую работу - спасибо :)  
 
Salvator, поддержу Ваши "благодарности" за "просветительство".

По теме. Решал такую же задачу. Что-то получилось, пусть не так красиво.
Напишу, может кому-нибудь поможет, да и для себя тоже :).
Как я делал
1 подключение делать не к файлу, а к папке (тогда в Name будет название файла), кнопка "Изменить"
2 отфильтровал по нужному файлу
3 удалил столбцы все кроме Content и Data
4 в Content есть вариант нажать на двойные стрелочки вниз в названии столбца и на Binary в ячейке - результаты будут разные. Я использовал первый вариант в котором сама появится функция.
5 Нажимаем на Content появляется слева сверху всего списка запросов "Преобразовать файл...", справа в Параметрах запроса сами появились дополнительные строки. Справа возвращаемся на несколько шагов вверх до "Другие удалённые столбцы", два раза щелкаем, добавляем галочку на Name и в последнем шаге появляется столбец с именем файла.
6 Далее как-то пользуемся новой функцией :) чтобы получать такой же эффект.

Может позже разберусь точно и допишу.

7 Тем не менее, как минимум: при необходимости добавить новый файл/новый запрос, просто слева на запросе правой кнопкой и выбрать "дублировать" , далее идём в сам запрос (справа), находим первый же фильтр по файлу и меняем на нужный файл. Далее должно заработать.

Может быть в первом же запросе в первом фильтре выбрать несколько или все файлы (если они однотипные) и всё получится, но такие эксперименты пока не проводил.
Изменено: Alexexcel - 08.08.2023 16:33:08
 
Цитата
Alexexcel написал:
отфильтровал по нужному файлу
и как же Power Query затем поймет какой нужный?  :) Предположим, имя файла при сохранении изменили с "Срез" на "Отрез". Чем предложенное Вами решение отличается от того, чтобы просто менять руками имя файла в шаге Источник? Я вот честно, немного недопонимаю, если честно. И там и там придется вписывать новое имя файла. Более того, если файл рассылается по почте - велика вероятность того, что даже папки-то не будет той, что изначально в запросе. Т.е. еще и путь менять :)
Alexexcel, Вы, возможно, не до конца прониклись проблемой ТС-а - там подключением к папке не обойтись:
Цитата
Salvator написал:
файл, который рассылается "Ответственным" по началу он носит название "Срез", а приходит с названиями "петров", "иванов", "сидоров" и нужно, чтобы у меня в обработке было не закреплено название "срез", а был столбец с названием файла: у петрова - петров, у сидорова - сидоров. А не у всех - "срез".
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Позволю себе высказать предположение, оно же - предложение.
Рассылаем исполнителям файл, да хоть тот же "Срез", например.
Получаем в ответ файлы типа "Иванов", "Петров", "Сидоров" и т.д.
Валим их все в одну папку, где никаких других файлов нет.
Дальше - как учили: https://www.planetaexcel.ru/techniques/24/2152/
Конкретно про название рассказывается в п.3. Кажется, так. Нет?..
Страницы: 1
Наверх