let
Source = Excel.CurrentWorkbook(){[Name="Dossiers"]}[Content],
Etat1 = Table.TransformColumnTypes(Source,{{"N°DOSSIER ", Int64.Type}, {"DATE", type date}, {"STATUT", type text}, {"PERSONNE 1", type text}, {"PERSONNE 2", type text}}),
#"Lignes groupées" = Table.Group(Etat1, {"N°DOSSIER "}, {{"1", each List.Min([DATE]), type nullable date}, {"2", each List.Max([DATE]), type nullable date}}),
#"Personnalisée ajoutée" = Table.AddColumn(#"Lignes groupées", "Filtre", each if [1]=[2] then null else 1),
#"Lignes filtrées" = Table.SelectRows(#"Personnalisée ajoutée", each ([Filtre] = 1)),
#"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(#"Lignes filtrées", {"N°DOSSIER ","Filtre"}, "Ord", "DATE"),
#"Requêtes fusionnées" = Table.NestedJoin(#"Supprimer le tableau croisé dynamique des autres colonnes", {"N°DOSSIER ", "DATE"}, Etat1, {"N°DOSSIER ", "DATE"}, "Etat1", JoinKind.Inner),
#"Etat1 développé" = Table.ExpandTableColumn(#"Requêtes fusionnées", "Etat1", {"STATUT", "PERSONNE 1", "PERSONNE 2"}, {"STATUT", "PERSONNE 1", "PERSONNE 2"}),
#"Lignes triées" = Table.Sort(#"Etat1 développé",{{"N°DOSSIER ", Order.Ascending}, {"DATE", Order.Ascending}}),
Etat2 = Table.AddIndexColumn(#"Lignes triées", "Index", 0, 1, Int64.Type),
#"Personnalisée ajoutée1" = Table.AddColumn(Etat2, "ENVOYEUR", each if [Ord]="1" or [Index]=0 then [PERSONNE 1] else Etat2[PERSONNE 2]{[Index]-1}),
#"Personnalisée ajoutée2" = Table.AddColumn(#"Personnalisée ajoutée1", "RECEPTEUR", each if [Ord]="1" or [Index]=0 then [PERSONNE 2] else Etat2[PERSONNE 1]{[Index]-1}),
#"Colonnes supprimées" = Table.RemoveColumns(#"Personnalisée ajoutée2",{"Filtre", "Ord", "PERSONNE 1", "PERSONNE 2", "Index"})
in
#"Colonnes supprimées"