Reartiellement trouvé, mais c'est toujours pas ç
Re,
Tu ferais peut-être bien de poster un mini fichier. Ton message est rudement difficile à comprendre.
Ce n'est pas INDEX(A2:A10 c'est INDEX(A1:A10,
vu que tu cherches le contenu d'une cellule avec, comme critère, son n° de ligne
Si tu écris Petite.Valeur(plage;Ligne()),
tu remplaces l'argument de Petite.Valeur par le n° de ligne où est ta formule
La 1ère des petites valeurs : argument 1 donc ligne 1
C'est probablement là la raison de ton décalage, si tu n'as pas démarré en ligne 1
La formule que tu donnes fonctionne si tu la tapes à partir de la ligne 1, de cette manière
=INDEX(A$1:A$10;PETITE.VALEUR(SI((LIGNE(A$2:A$10)>=5)*(LIGNE(A$2:A$10)=5)*(LIGNE(A$2:A$10)<=7);LIGNE(A$2:A$10));LIGNE()-1))
Tu dis :
'Si je valide en matricielle sur D2
10 '
Non, tu valides d'abord dans une seule cellule, puis tu copies et tu colles
Quand on peut utiliser Min() à la place de Petite.Valeur(), je préfère
C'est plus court, et d'une
Ensuite, regarde la 1ère formule que je t'ai écrite :
elle n'a pas besoin d'être mise au conditionnel, contrairement à Petite.Valeur()
C'est le manque de conditionnel qui te fait obtenir ça :
commande XY789
commande XY123454
commande XY
#NOMBRE!
#NOMBRE!
Avec celle-ci, tu obtiens #NOMBRE! si elle n'est pas mise au conditionnel
=INDEX(A$1:A$10;PETITE.VALEUR(SI(GAUCHE(A$2:A$10;NBCAR($B$2))=$B$2;LIGNE(A$2:A$10));LIGNE()-1))
Avec celle-ci (en D2) ça marche
=INDEX(A$1:A10;MIN(SI(GAUCHE(A$2:A$10;NBCAR($B$2))=$B$2;SI(NB.SI(D$1
1;A$2:A$10)=0;LIGNE(A$2:A$10)))))&''
(sauf que je croyais que tu voulait les 'Commande' suivi de quelque chose
Là, tu obtiens les mots 'Commande' tout court aussi.)