На основе одного любого файла создаем функцию обработки файла, я брал за пример файл Волга.xlsm.
При создании подключения к файлу мастер в PowerQuery создает сразу несколько шагов, в нашем случае шаги: навигация и изменить тип - будут лишними, поэтому удаляем их, оставляя только шаг источник. Далее комментарии в коде
Код |
---|
let
Источник = Excel.Workbook(File.Contents("D:\temp\Волга.xlsm"), null, true),
--Разворачиваем поле Data, нажав в заголовке стрелочки
#"Развернутый элемент Data" = Table.ExpandTableColumn(Источник, "Data", {"Column1", "Column2"}, {"Data.Column1", "Data.Column2"}),
--Выделяем получившиеся столбцы, нажимаем ПКМ и выбираем пункт "Удалить другие столбцы"
#"Другие удаленные столбцы" = Table.SelectColumns(#"Развернутый элемент Data",{"Data.Column1", "Data.Column2"}),
--По первому столбцу накладываем фильтр, оставляя только строки: Автомобиль, Код, Цвет
#"Строки с примененным фильтром" = Table.SelectRows(#"Другие удаленные столбцы", each ([Data.Column1] = "Автомобиль" or [Data.Column1] = "Код" or [Data.Column1] = "Цвет")),
--Выделяем первый столбец и на вкладке "Преобразование" нажимаем "Столбец сведения". Разворачиваем"Расширенные параметры и выбираем "Не агрегировать"
#"Сведенный столбец" = Table.Pivot(#"Строки с примененным фильтром", List.Distinct(#"Строки с примененным фильтром"[Data.Column1]), "Data.Column1", "Data.Column2")
in
#"Сведенный столбец" |
Полученный код преобразуем в функцию
Скрытый текст |
---|
Код |
---|
(filename)=>
let
Источник = Excel.Workbook(File.Contents(filename), null, true),
#"Развернутый элемент Data" = Table.ExpandTableColumn(Источник, "Data", {"Column1", "Column2"}, {"Data.Column1", "Data.Column2"}),
#"Другие удаленные столбцы" = Table.SelectColumns(#"Развернутый элемент Data",{"Data.Column1", "Data.Column2"}),
#"Строки с примененным фильтром" = Table.SelectRows(#"Другие удаленные столбцы", each ([Data.Column1] = "Автомобиль" or [Data.Column1] = "Код" or [Data.Column1] = "Цвет")),
#"Сведенный столбец" = Table.Pivot(#"Строки с примененным фильтром", List.Distinct(#"Строки с примененным фильтром"[Data.Column1]), "Data.Column1", "Data.Column2")
in
#"Сведенный столбец" |
|