let
Source = ...,
ChangedType = ...,
GroupedRows = Table.Group(ChangedType, {"Code"},
{"CODES", each
let
idx = Table.AddIndexColumn(_, "Idx", 0,1),
cumul = Table.AddColumn(idx, "Cumulated",
(state)=>
List.Sum(
Table.SelectRows(idx, each state[Idx] >= [Idx])[Difference]
), Int64.Type
),
diffascumul = Table.AddColumn(_, "Cumulated", each [Difference], Int64.Type)
in
if Table.RowCount(_) = 1 then diffascumul else cumul,
type table
}
),
CombinedCodes = Table.Combine(GroupedRows[CODES]),
RemovedIdx = Table.RemoveColumns(CombinedCodes,"Idx")
in
RemovedIdx