let
Источник = Excel.Workbook(File.Contents(Excel.CurrentWorkbook(){[Name="ПутьКФайлу"]}[Content]{0}[Column1]), null, true),
Лист1_Sheet = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
ПовышенныеЗаголовки = Table.PromoteHeaders(Лист1_Sheet, [PromoteAllScalars=true]),
Фильтр = Table.SelectRows(ПовышенныеЗаголовки, each ([Товар] <> null)),
Группировка = Table.Group(Фильтр, {"№"}, {{"таб", each Table.AddIndexColumn( _, "Индекс", Table.RowCount(_) - Number.From([#"№"]{0}<>null), -1), type table}}, GroupKind.Local),
Сбор = Table.Combine( Группировка[таб] ),
Запись = let m = List.Max( Сбор[Индекс] ) + 1 in Record.FromList( List.Repeat( {null}, m ), List.Transform({1..m}, each "Группа " & Text.From(_) ) ),
ДобавляемЗапись = Table.AddColumn( Сбор, "Зап", each let i = [Индекс], t = [Товар] in Record.TransformFields( Запись, {{Record.FieldNames(Запись){i}, each t}} )),
Разворачиваем = Table.ExpandRecordColumn(ДобавляемЗапись, "Зап", Record.FieldNames(Запись) ),
ЗаполнениеВниз = Table.FillDown(Разворачиваем, List.Skip( Record.FieldNames(Запись) ) ),
УдаленныеСтолбцы = Table.RemoveColumns(ЗаполнениеВниз,{"Товар", "Индекс"}),
Итог = Table.SelectRows(УдаленныеСтолбцы, each ([Группа 1] <> null))
in
Итог |