let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
TriParCptEtDate = Table.Sort(Source,{{"CPT ID", Order.Ascending}, {"date", Order.Ascending}}),
AjoutColonneIndex0 = Table.AddIndexColumn(TriParCptEtDate, "Index0", 0, 1, Int64.Type),
AjoutColonneIndex1 = Table.AddIndexColumn(AjoutColonneIndex0, "Index1", 1, 1, Int64.Type),
FusionRequête = Table.NestedJoin(AjoutColonneIndex1, {"CPT ID", "Index0"}, AjoutColonneIndex1, {"CPT ID", "Index1"}, "DonnéesPrécédentes", JoinKind.LeftOuter),
RecordDonnéesPrécédentes = Table.TransformColumns(FusionRequête,{{"DonnéesPrécédentes", Table.First, type record}}),
ColonneAjoutéeRegistre1 = Table.AddColumn(RecordDonnéesPrécédentes, "Registre1", each [Registre 1] - (if [DonnéesPrécédentes] = null then [Registre 1] else [DonnéesPrécédentes][Registre 1])),
ColonneAjoutéeRegistre2 = Table.AddColumn(ColonneAjoutéeRegistre1, "Registre2", each [Registre 2] - (if [DonnéesPrécédentes] = null then [Registre 2] else [DonnéesPrécédentes][Registre 2])),
ColonneAjoutéeRegistre3 = Table.AddColumn(ColonneAjoutéeRegistre2, "Registre3", each [Registre 3] - (if [DonnéesPrécédentes] = null then [Registre 3] else [DonnéesPrécédentes][Registre 3])),
ColonneAjoutéeRegistre4 = Table.AddColumn(ColonneAjoutéeRegistre3, "Registre4", each [Registre 4] - (if [DonnéesPrécédentes] = null then [Registre 4] else [DonnéesPrécédentes][Registre 4])),
ColonnesSélectionnées = Table.SelectColumns(ColonneAjoutéeRegistre4,{"CPT ID", "date", "Registre1", "Registre2", "Registre3", "Registre4"})
in
ColonnesSélectionnées