let
Источник = Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="Параметры"]}[Content]{0}[Путь к исходным данным]), null, true),
#"Строки с примененным фильтром" = Table.SelectRows(Источник, each ([Name] = "Осн." or [Name] = "Эл.")),
#"Другие удаленные столбцы" = Table.SelectColumns(#"Строки с примененным фильтром",{"Data"}),
#"Развернутый элемент Data" = Table.ExpandTableColumn(#"Другие удаленные столбцы", "Data", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16"}),
#"Строки с примененным фильтром1" = Table.SelectRows(#"Развернутый элемент Data", each ([Column1] <> null)),
#"Повышенные заголовки" = Table.PromoteHeaders(#"Строки с примененным фильтром1", [PromoteAllScalars=true]),
#"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"Участок", type text}, {"№ опер.", type any}, {" Наименование", type text}, {"ГОСТ сорт", type text}, {" Марка материала", type any}, {"ГОСТ ТУ", type text}, {"МКК", type text}, {"Профиль", type any}, {"Размер", type any}, {"Единица изм-я", type text}, {"Норма1", type any}, {"/-", type text}, {"Норма2", type any}, {"/-2", type text}, {"Норма3", type text}, {"Column16", Int64.Type}}),
#"Удаленные столбцы" = Table.RemoveColumns(#"Измененный тип",{"Column16"}),
#"Измененный тип1" = Table.TransformColumnTypes(#"Удаленные столбцы",{{"Норма3", type number}, {"Норма2", type number}}),
#"Строки с примененным фильтром2" = Table.SelectRows(#"Измененный тип1", each [Участок] = "КТУ" or [Участок] = "МСУ" or [Участок] = "КСУ" or [Участок] = "БИХ" or [Участок] = "Гр.мех" or [Участок] = "УКР" or [Участок] = "УРВ" or [Участок] = "УРК"),
#"Сгруппированные строки" = Table.Group(#"Строки с примененным фильтром2", {"Участок", "№ опер.", " Наименование", "ГОСТ сорт", " Марка материала", "ГОСТ ТУ", "МКК", "Профиль", "Размер", "Единица изм-я", "/-", "/-2"}, {{"Норма1С", each List.Sum([Норма1]), type number}, {"Норма2С", each List.Sum([Норма2]), type anynonnull}, {"Норма3С", each List.Sum([Норма3]), type text}}),
#"Переупорядоченные столбцы" = Table.ReorderColumns(#"Сгруппированные строки",{"Участок", "№ опер.", " Наименование", "ГОСТ сорт", " Марка материала", "ГОСТ ТУ", "МКК", "Профиль", "Размер", "Единица изм-я", "Норма1С", "/-", "Норма2С", "/-2", "Норма3С"}),
#"Измененный тип2" = Table.TransformColumnTypes(#"Переупорядоченные столбцы",{{"Норма3С", type number}}),
#"Сортированные строки1" = Table.Sort(#"Измененный тип2",{{"№ опер.", Order.Ascending}}),
Group = Table.Combine(Table.Group(Table.AddIndexColumn(#"Сортированные строки1","id"),{"Участок","№ опер."},{{"a", each _}})[a]),
Custom1 = Table.FromColumns(Table.ToColumns(Group)&{{null}&List.RemoveLastN(Group[Участок])}&{{null}&List.RemoveLastN(Group[#"№ опер."])}),
Replace1 = Table.ReplaceValue(Custom1, each [Column17],null,(a,b,c)=>if a=b then c else a,{"Column1"}),
Replace2 = Table.ReplaceValue(Replace1,each [Column18],each [Column1],(a,b,c)=>if a=b then null else a,{"Column2"}),
Remove = Table.RemoveColumns(Replace2,{"Column18","Column16", "Column17"}),
Rename = Table.RenameColumns(Remove,List.Zip({Table.ColumnNames(Remove)}&{Table.ColumnNames(#"Сортированные строки1")}))
in
Rename
|