Страницы: 1
RSS
Убрать лишние столбцы из таблицы в pq, В какталоге имеются файлы из которых с помощью pq вытягивают данные...
 
Доброго времени суток!

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

Подскажите знатоки???
 
Код
list = List.Select(Table.ColumnNames(откуда), each Text.Contains(_,"со строчной") or Text.Contains(_,"с прописной"))
to = Table.SelectColumns(Source,list)
ещё можно с регистром в именах играться, Rename etc., ещё можно... приложить файл
Изменено: buchlotnik - 24.09.2019 21:53:10
Соблюдение правил форума не освобождает от модераторского произвола
 
Доброе время суток
Цитата
buchlotnik написал:
Text.Contains(_,"со строчной") or Text.Contains(_,"с прописной")
Михаил, а не проще ли
Код
Text.Contains(_,"Какая-то начальная часть имени столбца", Comparer.OrdinalIgnoreCase)
:qstn:
 
Цитата
Андрей VG написал:
не проще ли
конечно проще, спасибо за идею
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, спасибо за помощь! Но не получается почему-то у меня... я еще не такой знаток  PQ.)  Вот файлы для примера. Прошу прощения что сразу не приложил пример.
Спасибо!
 
как-то так
Код
let
    from = Folder.Files(Excel.CurrentWorkbook(){[Name="adres"]}[Content]{0}[Column1])[[Content]],
    sheets = Table.TransformColumns(from, {"Content", each Table.PromoteHeaders(Excel.Workbook(_){[Name="Реестр"]}[Data])}),
    columns = Table.TransformColumns(sheets,{"Content", each [a=List.Select(Table.ColumnNames(_),
                                                                each Text.Contains(_,"статус", Comparer.OrdinalIgnoreCase)), 
                                                                b = Table.SelectColumns(_,a)][b]}),
    names = Table.TransformColumns(columns,{"Content", each try Table.RenameColumns(_,{{"статус","Статус"}}) otherwise _}),
    to = Table.Combine(names[Content])
in
    to
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, большое спасибо! Все получилось!
 
Цитата
kaa700 написал:
Все получилось!
рад, но так будет лучше
Код
let
    from = Folder.Files(Excel.CurrentWorkbook(){[Name="adres"]}[Content]{0}[Column1])[[Content]],
    sheets = Table.TransformColumns(from, {"Content", each Table.PromoteHeaders(Excel.Workbook(_){[Name="Реестр"]}[Data])}),
    names = Table.TransformColumns(sheets,{"Content", each try Table.RenameColumns(_,{{"статус","Статус"}})[[Статус]] otherwise _[[Статус]]}),
    to = Table.Combine(names[Content])
in
    to
Соблюдение правил форума не освобождает от модераторского произвола
Страницы: 1
Наверх