re,
Allez c'est partit pour un essai d'explication :
= INDEX($B$4:$D$4;PETITE.VALEUR(SI($B$17:$D$17=$K$29;COLONNE($B$4:$D$4)-1);LIGNES($1:1))).
les éléments que l'on veux récupérer sont dans la plage INDEX($B$4:$D$4) ensuite il faut dire a excel la position des éléments des éléments dans la plage par cette partie de formule PETITE.VALEUR(SI($B$17:$D$17=$K$29;COLONNE($B$4:$D$4)-1);LIGNES($1:1))
on sait que pour sélection un élément il faut que la valeur de la plage $B$17:$D$17 soit égale $K$29 d'ou SI($B$17:$D$17=$K$29
et le petite.valeur va donner le numéro de colonne le plus petit ou l'on trouve $B$17:$D$17=$K$29 dans colonne $B$4:$D$4 (la fonction colonne() renvoie les numéro de colonne colonneB=2, ColonneC=3 ........) dans l'exemple la premiere valeur a renvoyer se trouve en colonne B qui est en fait le premier endroit de la plage $B$4:$D$4 si on s'en tient a COLONNE($B$4:$D$4) le renvoi serait 2 le numéro de colonne d'ou le -1 derriere COLONNE($B$4:$D$4) on peut se passer de se moins 1 a condition de débuter TOUTES les plages en colonne A. Pour la fonction petite.valeur on doit a un moment définir la enieme petite valeur pour cela on utilise LIGNES($1:1) sur la première ligne de recherche cette partie renvoie 1 (lorsque ligne() ou colonne() s'écrive avec un S le renvoie n'est pas le numéro de la ligne ou de la colonne mais le nombre de lignes ou de colonne contenues dans la paranthèse) en étirant vers le bas on obtient LIGNES($1:2) soit un résultat de 2 donc 2 ème petite valeur de numéro de colonne etc......
Dans une formule matricielle toutes les plage doivent avoir la même grandeur donc si si tu veux passer de B4: D4 a B4:Z4 la formule deviendrait
= INDEX($B$4:$Z$4;PETITE.VALEUR(SI($B$17:$Z$17=$K$29;COLONNE($B$4:$Z$4)-1);LIGNES($1:1)))
sans oublier la validation matricielle par les touche CTRL, Maj (au dessus de CTRL) et entrée
Voila j'espère que cela t'éclaire un peu autrement n'hésites pas
Cordialement