Formule/VBA index equiv
Bonjour à tous,
Le coronavirus ne nous empêcher pas de kiffer ?! (blague pourrie)
Je vous sollicite parce que j'ai un fichier dont je suis presque arrivé à bout et il me reste juste de faire une classement par ordre décroissant de fournisseurs en fonction du calcul de leur prix moyen. J'y était arrivé en utilisant la fonction Index(;equiv(;)) mais j'ai toujours un message d'erreur est ce que quelqu'un peu m'aider svp?
Dans la feuille calculs,
Le nom des fournisseur est dans la colonne A en bleu, les prix moyen dans la colonne V et le résultat associé est dans la colonne W. je voudrais que le nom du fournisseur apparaissent dans la colonne H en fonction du classement de son prix moyen
J'ai mis le ficher en pj. Merci beaucoup pour votre aide, ce forum est super.
Bonsoir,
vos formules en H renvoient deux types d'erreurs : #REF et #N/A
#REF est simple : la fonction EQUIV renvoie le numéro de la ligne de la matrice où se trouve la valeur cherchée.
En H5 ( après correction de la formule pour ne mettre que la colonne V en référence comme les cellules du dessous), EQUIV renvoie donc le numéro de ligne de la matrice V3:V69 où se trouve la valeur 0 recherchée, cette valeur 0 se trouve sur la 59ième ligne de la matrice, donc elle renvoie 59
La fonction INDEX renvoie la valeur se trouvant à l'intersection de la ligne et de la colonne indiquée de la matrice indiquée.
La matrice est A3:A7 soit 5 lignes !
Et vous lui demandez de retourner la 59ième !
D'où l'erreur de référence.
L'erreur #N/A est "plus simple", c'est simplement due au fait que EQUIV ne trouve pas la valeur recherchée dans la matrice indiquée.
Si vous regardez la formule en H7, la matrice va de V6 à V71 !
hors la valeur cherchée est en V6 ! Pas de chance, à une ligne près !
Mais cette erreur est surement du au fait d'avoir fait une recopie automatique des formules vers le bas, mais vous avez oublié de verrouiller les référence de la matrice en omettant de mettre un "$" devant le numéro des lignes, du coup ces numéros de ligne se sont incrémentés à chaque changement de ligne lors de la recopie :
V4:V69 ligne 5 pour la zone en bleue
donc ligne 6 +1 : V5:V70
ligne 7 on a V6:V71 etc...
Il faut en ligne 5 verrouiller les numéro de ligne avec des $ : V$4:V$69 et là vous pouvez faire une recopie vers le bas, les référence de la matrice ne bougeront plus !
Comme en colonne W vous avez le nom du fournisseur de la recherche en colonne V pourquoi ne pas faire un renvoie de cette donnée plutôt que d'aller chercher dans la colonne A avec INDEX qui ne marche pas ?
Exemple, formule en H5 : =DECALER(INDEX(V$3:V$69;EQUIV(G5;V$3:V$69;0));0;1)
@ bientôt
LouReeD
Merci beaucoup