let
Sourse = Excel.CurrentWorkbook(){[Name="Account_20"]}[Content],
ReplaceValue = Table.ReplaceValue(Sourse, each [Column1], each if [Статьи затрат] = "Обороты" then Number.From(List.Max(Company[Column1]))+1 else [Column1],Replacer.ReplaceValue,{"Column1"}),
SelectColumns = Table.SelectColumns(ReplaceValue,{"Column1", "Статьи затрат", "Код", "BalansO_D", "BalansO_K", "Turnover_D", "Turnover_K", "BalansE_D", "BalansE_K", "Comp", "Period"}),
Trim = Table.TransformColumns(SelectColumns,{{"Статьи затрат", each Text.Trim(_, {" "}), type text}}),
Headers = List.Buffer( List.Transform({0..List.Max(Trim[Column1])}, Text.From ) ),
ReplacedValue = Table.ReplaceValue(Trim,null,0,Replacer.ReplaceValue,{"Column1"}),
AddedRecs = Table.AddColumn(ReplacedValue, "recs", each Record.FromList( List.ReplaceRange( List.Repeat({null},List.Count(Headers)), [Column1], 1, {[Статьи затрат]} ), Headers ), type record ),
ExpandedRecs = Table.ExpandRecordColumn(AddedRecs, "recs", Headers ),
AddIndex = Table.AddIndexColumn(ExpandedRecs, "Индекс", 1, 1),
FillDown = Table.FillDown(AddIndex,{"0"}),
Group = Table.Group(FillDown, {"0"}, {{"Tab", each _, type table}}),
ReplaceN = Table.ReplaceValue(Group, each [Tab], each Table.FillDown([Tab], {"1"}),Replacer.ReplaceValue,{"Tab"}),
RemoveColumns = Table.RemoveColumns(ReplaceN,{"0"}),
Expand = Table.ExpandTableColumn(RemoveColumns, "Tab", {"Column1", "Статьи затрат", "Код", "BalansO_D", "BalansO_K", "Turnover_D", "Turnover_K", "BalansE_D", "BalansE_K", "Comp", "Period", "0", "1", "2", "3", "4", "5", "6", "7", "8", "Индекс"}, {"Column1", "Статьи затрат", "Код", "BalansO_D", "BalansO_K", "Turnover_D", "Turnover_K", "BalansE_D", "BalansE_K", "Comp", "Period", "0", "1", "2", "3", "4", "5", "6", "7", "8", "Индекс"})
in
Expand |