Oui en effet, il y aurait du NB.SI à rajouter ainsi que tout un tas de fonctions pour essayer de faire une formule de compétition qui n'en vaudrait pas la chandelle finalement.
Il y a peut-être d'autres solutions mais je vous propose en attendant une fonction personnalisée (via VBA), qui règlerait le problème temporairement.
Pour saisir le code suivant, il faut aller sur le volet développeur (s'il n'est pas activé, allez sur le volet Fichier > Options/Personnaliser le ruban/Cochez "Développeur") puis ouvrir l'éditeur Visual Basic, puis insérer un module via le menu contextuel "Insertion" et coller le code dedans :
Function EQUIV_MULT(Valeur_Cherchee, Plage As Range, Occurrence As Byte) As Integer
'PERMET D'OBTENIR LA POSITION D'UNE VALEUR DANS UN PLAGE À SA Nème OCCURRENCE
Application.volatile
For i = 1 To Plage.Count ' boucle sur i de 1 à la taille de la plage
If Plage.Cells(i).Value = Valeur_Cherchee Then 'si la valeur de la cellule à la ième position dans la plage = Valeur à chercher
Cpt = Cpt + 1 'incrémentation (Cpt commence à 0)
If Occurrence = Cpt Then 'si Cpt = Occurrence >>> CORRESPONDANCE
EQUIV_MULT = i 'La fonction retourne la position
Exit Function
End If
End If
Next i 'on passe au i suivant
End Function
Ensuite, vous saisissez la formule suivante en C21 :
=INDEX(Tableau2[Clubs]:EQUIV_MULT(D21;$O$4:$O$23;NB.SI($D$21:$D21;$D21)))
Puis vous faites glisser la formule aux autres cellules C22, ....
NB.SI($D$21:$D21;$D21) renvoie le nombre d'occurrence du score en D21:D...
EQUIV_MULT renvoie la position de notre score dans O4:O23 à l'occurrence qui a lieu.
INDEX renvoie la valeur du club à la position obtenue par EQUIV_MULT.
Cordialement,