Страницы: 1
RSS
Power Query для сведения нескольких CSV c заголовками
 
Добрый день,

не смог разобраться, может быть свожете помочь,
вопрос
в Папке лежит 140 файлов CSV c разными заголовками

при сведении в
получается таблица с перемешанными заголовками подряд,
а мне требуется свести все в одну общую таблицу в которой каждый уникальный столбец указан отдельно

пример кода
Код
let
    Источник = Folder.Files("C:\10"),
    #"Удаленные столбцы" = Table.RemoveColumns(Источник,{"Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
    #"Разделить столбец разделителем1" = Table.SplitColumn(#"Удаленные столбцы","Name",Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv),{"Name.1"}),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Разделить столбец разделителем1", "Custom", each Csv.Document([Content],[Delimiter="#(tab)", Columns=100, Encoding=1251, QuoteStyle=QuoteStyle.None])),
    #"Удаленные столбцы1" = Table.RemoveColumns(#"Добавлен пользовательский объект",{"Content"}),
    #"Развернутый элемент Custom1" = Table.ExpandTableColumn(#"Удаленные столбцы1", "Custom", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18", "Column19", "Column20", "Column21", "Column22", "Column23", "Column24", "Column25", "Column26", "Column27", "Column28", "Column29", "Column30", "Column31", "Column32", "Column33", "Column34", "Column35", "Column36", "Column37", "Column38", "Column39", "Column40", "Column41", "Column42", "Column43", "Column44", "Column45", "Column46", "Column47", "Column48", "Column49", "Column50", "Column51", "Column52", "Column53", "Column54", "Column55", "Column56", "Column57", "Column58", "Column59", "Column60", "Column61", "Column62", "Column63", "Column64", "Column65", "Column66", "Column67", "Column68", "Column69", "Column70", "Column71", "Column72", "Column73", "Column74", "Column75", "Column76", "Column77", "Column78", "Column79", "Column80", "Column81", "Column82", "Column83", "Column84", "Column85", "Column86", "Column87", "Column88", "Column89", "Column90", "Column91", "Column92", "Column93", "Column94", "Column95", "Column96", "Column97", "Column98", "Column99", "Column100"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18", "Column19", "Column20", "Column21", "Column22", "Column23", "Column24", "Column25", "Column26", "Column27", "Column28", "Column29", "Column30", "Column31", "Column32", "Column33", "Column34", "Column35", "Column36", "Column37", "Column38", "Column39", "Column40", "Column41", "Column42", "Column43", "Column44", "Column45", "Column46", "Column47", "Column48", "Column49", "Column50", "Column51", "Column52", "Column53", "Column54", "Column55", "Column56", "Column57", "Column58", "Column59", "Column60", "Column61", "Column62", "Column63", "Column64", "Column65", "Column66", "Column67", "Column68", "Column69", "Column70", "Column71", "Column72", "Column73", "Column74", "Column75", "Column76", "Column77", "Column78", "Column79", "Column80", "Column81", "Column82", "Column83", "Column84", "Column85", "Column86", "Column87", "Column88", "Column89", "Column90", "Column91", "Column92", "Column93", "Column94", "Column95", "Column96", "Column97", "Column98", "Column99", "Column100"})
in
    #"Развернутый элемент Custom1"
 
Если обрабатывать каждый файл отдельно то заголовки корректные
Код
let
    Источник = Folder.Files("C:\10"),
    #"Удаленные столбцы" = Table.RemoveColumns(Источник,{"Extension", "Date accessed", "Date modified", "Date created", "Attributes", "Folder Path"}),
    Content = #"Удаленные столбцы"{0}[Content],
    #"Импортированные значения CSV" = Csv.Document(Content,[Delimiter="#(tab)", Columns=13, Encoding=1251, QuoteStyle=QuoteStyle.None]),
    #"Повышенные заголовки" = Table.PromoteHeaders(#"Импортированные значения CSV"),
    #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Type", type text}, {"Vid", type text}, {"imgVid", type text}, {"Subvid", type text}, {"imgSubvid", type text}, {"Name", type text}, {"imgCategory", type text}, {"About", type text}, {"Documentation", type text}, {"Nominal size", Int64.Type}, {"Maximum flow", Int64.Type}, {"Filter rating Nominal", type date}, {"Filter rating Absolute", type text}})
in
    #"Измененный тип"
 
Доброе время суток
Офильтуйте строки общей таблицы по столбцу, содержащему название SubVid, например
Код
not Text.StartsWith([ColumnN], "SubVid")

Успехов
 
Цитата
Андрей VG написал: nN], "Sub
Андрей VG, спасибо
однако проблема в другом
порядок столбцов не совпадает
 
Цитата
Artsmart написал: порядок столбцов не совпадает
Тогда чуток посложнее (правда, так мышкой не на клацаешь ;) ). Вариант по данным этой темы.
Успехов.
Updated: Не учёл динамическое количество столбцов в файлах. Подправил.
Изменено: Андрей VG - 30.10.2016 00:21:09
 
Андрей VG,
К сожалению не работает. Т.к. все файлы типовые CSV без QWERTY
разделены заголовки обычным TAB

скрипт выдает ошибку на ToTable

добавил еще формат т.к. не выдает таблицу после NeededFiles
Код
    sourceFolder = Excel.CurrentWorkbook(){[Name="Параметры"]}[Content]{[Параметр="Путь"]}[Значение],
    sourceContent = Folder.Contents(sourceFolder & "\Исходные"),
    neededFiles = Table.SelectRows(sourceContent, each [Extension] = ".csv")[[Name],[Content]],
#"Добавлен пользовательский объект" = Table.AddColumn(#"neededFiles", "Custom", each Csv.Document([Content],[Delimiter="#(tab)", Columns=100, Encoding=1251, QuoteStyle=QuoteStyle.None])),
    toTable = Table.TransformColumns(neededFiles,{{"Content", each GetTable(_), type table} }),
    getColNames = Table.AddColumn(toTable, "colNames", each Table.ColumnNames([Content]), type list),
    allColNames = List.Sort(List.Distinct(List.Combine(getColNames[colNames]))),
    result = Table.ExpandTableColumn(toTable, "Content", allColNames)
 
В итоге запустил скрипт,
хоть с ошибками но он выдает совершенно не соответствующие столбцы

столбцы с разными именами в разных файлах не сопоставились
файл 1
AA BB CC DD

файл 2
AA BB EE FF

файл результат должен быть
AA BB CC DD EE FF
Страницы: 1
Читают тему
Наверх