Bonjour,
Comme tu veux ce résultat par formule, ce n'est pas évident !
Tu pourrais essayer avec un TCD mais je ne maîtrise pas vraiment donc là, je ne peux t'aider !
Voici avec un code VBA :
Sub Test()
Dim Dico As Object
Dim Plage As Range
Dim Cel As Range
Dim Cle As Variant
Dim T As Variant
Dim I As Integer
Dim J As Integer
Dim Valeur As String
Set Plage = Range("A3:A22")
Set Dico = CreateObject("Scripting.Dictionary")
'fait en deux passe pour avoir les valeurs de N1 en premier
For Each Cel In Plage: Dico(Cel.Value) = Dico(Cel.Value) & Cel.Offset(, 1).Value & ",": Next Cel
For Each Cel In Plage: Dico(Cel.Value) = Dico(Cel.Value) & Cel.Offset(, 2).Value & ",": Next Cel
'résultat à partir de F9
J = 9
For Each Cle In Dico.Keys
'supprime les vides
T = Split(Dico(Cle), ",")
For I = 0 To UBound(T)
If T(I) <> "" Then Valeur = Valeur & T(I) & ","
Next I
'inscription des valeurs
Range("F" & J).Value = Cle
Range("H" & J).Value = Valeur
Range("H" & J).TextToColumns Range("H" & J), , , , , , True
J = J + 1
Valeur = ""
Next Cle
End Sub
Il serait possible de transformer ce code en fonction matricielle que tu pourrais utiliser directement dans Excel !