let
Source = ...,
RecapInfos =
let
SelectColumns = Table.SelectColumns(Source, {"Niveau Atteinte", "Constat", "Écart"}),
FillDown = Table.FillDown(SelectColumns,{"Niveau Atteinte"}),
RemoveNulls = Table.SelectRows(FillDown, each ([Niveau Atteinte] <> null)),
GroupBy = Table.Group(RemoveNulls, {"Niveau Atteinte"}, {{"Constat", each List.First(List.RemoveNulls(_[Constat ])), type any}, {"Écart", each List.First(List.RemoveNulls(_[Écart])), type any}})
in
Table.Buffer(GroupBy),
AddColumnConstat1 = Table.AddColumn(Source, "Constat1", each try RecapInfos{[#"Niveau Atteinte" = [Niveau Atteinte]]}[Constat] otherwise null),
AddColumnÉcart1 = Table.AddColumn(AddColumnConstat1, "Écart1", each try RecapInfos{[#"Niveau Atteinte" = [Niveau Atteinte]]}[Écart] otherwise null)
in
AddColumnÉcart1