Index+Equiv avec 3 critères [Fermé]

Signaler
-
 soignisec -
Bonjour,

Je souhaite faire utiliser la fonction Index + Equiv avec 3 critères mais cela ne fonctionnne pas

=INDEX(PrixNet;EQUIV(1;(Fournisseurs=B24)*(Produits=D24)*(CodeFourn=C24);0))

En fait j'ai deux fichiers :
Dans le 1er j'ai 4 colones

Fournisseur Produit Code Prod Prix
Unilever Coca AB1 1,2
Unilever CocaZero AB1 1.03

Donc comme parfois j'ai le même fournisseur et le même code je dois faire une rechercher à 3 critères pour extraire le prix dans mon nouveau fichier.
Sauf que la formule que j'ai rentré ne fonctionne pas. Elle fonctionne avec deux critères mais pas avec trois.

Est ce que quelqu'un peu m'aider ?

Merci d'avance


2 réponses

Bonjour,

Après maintes recherches sur différents forums, notamment
http://www.developpez.net/forums/d450036/logiciels/microsoft-office/excel/excel-utiliser-index-equiv-2-conditions/

J'ai abouti, dans le cas de 3 ou plus solutions la formule suivante :
INDEX(J$4:J$11;EQUIV($B2;SI($D2=$D$4:$D$11;SI($E2=$E$4:$E$11;SI($F2=$F$4:$F$11;SI($G2=$G$4:$G$11;SI($H2=$H$4:$H$11;SI($I2=$I$4:$I$11;SI($C2=$C$4:$C$11;SI($K2=$K$4:$K$11;SI($L2=$L$4:$L$11;$B$4:$B$11;"");"");"");"");"");"");"");"");""));0)

en faisant ctrl + maj + entrée, Excel ajoute des crochets et affiche la formule suivante si l'on revient sur la cellule :
{=INDEX(J$4:J$11;EQUIV($B2;SI($D2=$D$4:$D$11;SI($E2=$E$4:$E$11;SI($F2=$F$4:$F$11;SI($G2=$G$4:$G$11;SI($H2=$H$4:$H$11;SI($I2=$I$4:$I$11;SI($C2=$C$4:$C$11;SI($K2=$K$4:$K$11;SI($L2=$L$4:$L$11;$B$4:$B$11;"");"");"");"");"");"");"");"");""));0)}

Traduit dans ton cas, ça donnerait :
{=INDEX("champ prix";EQUIV("Fournisseur";SI("produit"="champ produit";SI("critère 3"="zone critère 3";SI("critère 4"="zone critère 4";"champ fournisseur";"");"");""));0)}

Lorsqu'une valeur n'est pas bonne, la colonne de recherche de Equiv devient remplie de "" et ne retourne rien.
Lorsqu'une valeur est trouvée, en matriciel on obtient bien le résultat.

Je trouve la formule très puissante et voulais la partager

Cdt,
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
25948
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
8 avril 2021
5 864
Bonjour
essayez ceci:
=SOMMEPROD((Champ fournisseur="fournisseur")*(Champ produit="Produit")*(champ code fournisseur="code");champ prix))
mais ceci ne marche que si vous avez une seule ligne de chaque type regroupant les mêmes informations sur les 3 colonnes

si vous risquez d'avoir plusieurs fois le même ensemble de code, compléter la formule qui devient:
=SOMMEPROD((Champ fournisseur="fournisseur")*(Champ produit="Produit")*(champ code fournisseur="code");champ prix))/SOMMEPROD((Champ fournisseur="fournisseur")*(Champ produit="Produit")*(champ code fournisseur="code"))
qui divisera le total trouvé par le nombre de lignes concernées.
bien entendu, les valeurs entre guillemets peuvent être remplacées par les adresses de cellule où se situent ces valeurs

Crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?