// TDSheet
let
Source = Excel.Workbook(File.Contents("C:\Users\MaximZelensky\Downloads\Пример v3.xlsx"), null, true),
TDSheet_Sheet = Source{[Item="TDSheet",Kind="Sheet"]}[Data],
#"Removed Top Rows" = Table.Skip(TDSheet_Sheet,4),
#"Removed Other Columns" = Table.SelectColumns(#"Removed Top Rows",{"Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8"}),
#"Removed Blank Rows" = Table.SelectRows(#"Removed Other Columns", each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Promoted Headers" = Table.PromoteHeaders(#"Removed Blank Rows", [PromoteAllScalars=true]),
#"Renamed Columns" = Table.RenameColumns(#"Promoted Headers",{{"Column5", "Дебет - сумма"}, {"Column7", "Кредит - сумма"}}),
#"Removed Top Rows1" = Table.Skip(#"Renamed Columns",2),
#"Changed Type" = Table.TransformColumnTypes(#"Removed Top Rows1",{{"Документ", type text}, {"Дата", type date}, {"Кредит", type text}, {"Дебет", type text}, {"Дебет - сумма", type number}, {"Кредит - сумма", type number}, {"Операция", type text}}),
fnGetTable = (t)=>
let
Custom1 = Table.First(t),
Custom2 = [Отдел = t[Операция]{1}?, Проект = t[Операция]{2}?, Продукт = t[Операция]{4}?, #"Кол-во" = Table.SelectRows(t, each [Операция]="Кол-во")[#"Кредит - сумма"]{0}?],
Custom3 = Custom1 & Custom2
in Custom3,
#"Grouped Rows" = Table.Group(#"Changed Type", {"Дата", "Документ"}, {{"data", each fnGetTable(Table.RemoveColumns(_, {"Дата","Документ"})), type [Операция = text, Дебет = text, #"Дебет - сумма" = number, Кредит = text, #"Кредит - сумма" = number, Отдел=text, Проект=text, Продукт=text, #"Кол-во"=number]}}, GroupKind.Local, (x,y)=>Number.From(y[Дата]<>null)),
#"Expanded {0}" = Table.ExpandRecordColumn(#"Grouped Rows", "data", {"Операция", "Дебет", "Дебет - сумма", "Кредит", "Кредит - сумма", "Отдел", "Проект", "Продукт", "Кол-во"}, {"Операция", "Дебет", "Дебет - сумма", "Кредит", "Кредит - сумма", "Отдел", "Проект", "Продукт", "Кол-во"})
in
#"Expanded {0}" |