Recherche tableau multi critère Index + Equiv

Fermé
Etienne2744
Messages postés
3
Date d'inscription
mercredi 11 mars 2015
Statut
Membre
Dernière intervention
12 mars 2015
- Modifié par Etienne2744 le 11/03/2015 à 16:58
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
- 12 mars 2015 à 10:37
Bonsoir à tous,

Après 3 jours de test intensifs, je craque ...
Mon problème est pourtant simple et j'ai tenté d'appliquer ce que j'ai trouvé sur les forums mais en vain....

Voici le contexte: un tableau comportant 3 colonnes (info1,info2, info3)
Je souhaite récupérer l'info 3 à partir des infos 1&2.
Exemple
Info1 Info2 Info3
i11 i21 i31
i11 i22 i32
i12 i21 i33
i12 i22 i34
i12 i23

Pour info1 = i12 ; info2 = i21 j'obtiens i33
Je sais que la formule s'écrit =INDEX(info3,EQUIV(1,(info1="i12")*(info2="i21"),0)) mais rien à faire... je sors du #N/A sans arrêt.. une solution?
LA méthode est-elle bonne? ai-je des soucis de format (pourtant j'ai vérifié!), la définition de mon tableau avec les entête?

Un grand merci pour votre aide :)

Etienne

PS: la deuxième étape sera de passer sous vba avec la formule match et evaluate (oui oui j'ai déjà bcp cherché...)

4 réponses

Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
530
11 mars 2015 à 17:57
Bonjour,

La formule est bonne mais il s'agit d'une formule matricielle et tu dois appuyer sur Ctrl+Maj+Entrée pour la valider.

A+
1
Etienne2744
Messages postés
3
Date d'inscription
mercredi 11 mars 2015
Statut
Membre
Dernière intervention
12 mars 2015

11 mars 2015 à 18:26
C'était fait je pense que le problème vient plutôt du nom des colonnes..

message d'erreur #nom
0
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
530
11 mars 2015 à 20:21
Dans ta formule, info1, info2 et info3 ne sont pas les en-têtes de colonne mais des plages nommées correspondant aux données de ces colonnes.

La preuve par l'exemple :

https://www.cjoint.com/c/ECluEd88t4g

A+
0
Etienne2744
Messages postés
3
Date d'inscription
mercredi 11 mars 2015
Statut
Membre
Dernière intervention
12 mars 2015

12 mars 2015 à 09:31
Merci Gryus ça marche très bien maintenant!!! (tu m'as bien aidé!!)

Je suis passé sous vba maintenant et ça fonctionne pas mal. J'ai juste un soucis pour définir info1, info2, info3 en tant que variable.
Dois-je écrire :
coa= Feuil1!$A$2:$A$6 par exemple?


résultat = Evaluate("INDEX(info3,MATCH(1,(info1=""" & i11 & """)*(info2=" & i21 & "),0))")
0
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
530
12 mars 2015 à 10:37
Bonjour,

Essaie avec :
Resultat = Evaluate("INDEX(info3,MATCH(1,(info1=""i11"")*(info2=""i21""),0))")

Y-a pas de coa !... puisque les 3 plages nommées sont déjà définies.

A+
0