Re,
Elle doit être validée par ctrl, maj et entrée
parce que c'est une formule matricielle.
Elle fonctionne sur des plages entières et non cellule par cellule
=INDEX($A$7:$Q$7;MIN(SI($D8:$Q8=S$7;SI(NB.SI($R8:R8;$D$7:$Q$7)=0;COLONNE($D8:$Q8)))))&''
La 2ème partie :
=MIN(SI($D8:$Q8=S$7;SI(NB.SI($R8:R8;$D$7:$Q$7)=0;COLONNE($D8:$Q8))))
te renvoie un n° de colonne, la Min(Colonne()) donc la 1ère à partir de la gauche,
mais à condition que :
$D8:$Q8=S$7 : que la valeur de S7 soit contenue dans D8:Q5
NB.SI($R8:R8;$D$7:$Q$7)=0 : que la valeur cherchée n'ait pas déjà été trouvée par les formules précédentes
Index(plage A7:Q7; n° de colonne)
te donne le contenu de la cellule située en ligne 7 et dont le n° de colonne est le n° trouvé
A la fin, le &'' évite une formule conditionnelle
Quand toutes les valeurs sont épuisées, la formule renvoie 0 comme n° de colonne
Et Index(plage;0) validé en matriciel renvoie le contenu de la colonne 1 de la ligne 7, donc A7
mais A7 est vide (j'ai oublié de te prévenir, au fait)
ça renvoie donc 0
et 0&'' te donne une cellule vide
Tu as le même genre de formule, mais plus facile à lire, ici :
Lien supprimé
(le fichier posté à 09:47 le 26-09)