Incorporer une condition à une fonction Index

Résolu
Niquo Messages postés 19 Statut Membre -  
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir à tous et à toutes,

Je possède un classeur Excel avec deux feuilles 1 et 2. Dans la feuille 1, j'ai une formule me permettant de récupérer des valeurs de la feuille 2 sous certaines conditions. Mais je bloque pour ajouter une ultime condition.

La formule ci-dessous me récupère les valeurs dans la colonne E de la feuille 2 quand la valeur de A2 de la feuille 1 se trouve dans la colonne B de la feuille 2.

=INDEX(Feuil2!$E$3:$E$329;EQUIV($A$2;Feuil2!$B$3:$B$329;0))

Je possède également dans la feuille 2 une colonne F renseignée en binaire c'est à dire possédant des valeurs 1 et 2.

J'aimerai rajouter une condition à ma formule de départ qui me permettrait de récupérer les valeurs dans la colonne E de la feuille 2 quand la valeur A2 de la feuille 1 se trouve dans la colonne B de la feuille 2 et que la valeur dans F de la feuille 2 soit égale à 1.

Encore un grand merci à tous ceux et toutes celles qui font vivre ce forum.

Amicalement

3 réponses

gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

Si j'ai compris ta question tu peux essayer ceci :
=SI(ESTERREUR(EQUIV($A$2;Feuil2!$B$3:$B$329;0));"" ;SI(DECALER(Feuil2!$F$2;EQUIV($A$2;Feuil2!$B$3:$B$329;0);0)=1; INDEX(Feuil2!$E$3:$E$329;EQUIV($A$2;Feuil2!$B$3:$B$329;0));""))

Quand la valeur A2 de la feuille 1 se trouve dans la colonne B de la feuille 2 et que la valeur dans F de la feuille 2 soit égale à 1, cette formule affiche la valeur de la colonne E sinon rien.

PS il y a 2 espaces de présentation à supprimer pour éviter les tirets rajoutés par le site.
0
Niquo Messages postés 19 Statut Membre 2
 
Merci pour ta réponse gbinforme.

Après avoir essayé la formule (hors espace) que tu me proposes, celle-ci ne me donne pas les résultats escomptés.

=SI(ESTERREUR(EQUIV($A$2;Feuil2!$B$3:$B$329;0));"";SI(DECALER(Feuil2!$F$2;EQUIV($A$2;Feuil2!$B$3:$B$329;0);0)=1; INDEX(Feuil2!$E$3:$E$329;EQUIV($A$2;Feuil2!$B$3:$B$329;0));""))

Je trouve ta formule très cohérante si ce n'est lorsque que tu fais référence à la colonne F dans laquelle Excel doit vérifier si elle vaut 1. Tu fais référence à une seule cellule à savoir Feuil2!$F$2.
J'ai essayé de remplacer Feuil2!$F$2 par Feuil2!$F$2:$F$329 mais ça ne me donne rien.

Etant plutôt novice je bloque sur cette condition supplémentaire.

Crois-tu que je pointe du doigt la bonne incohérence ?

Merci d'avance de faire partager ton savoir et savoir-faire,

Amicalement
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour

lorsque que tu fais référence à la colonne F dans laquelle Excel doit vérifier si elle vaut 1. Tu fais référence à une seule cellule à savoir Feuil2!$F$2.

C'est tout à fait normal car cela fonctionne avec la fonction DECALER qui à partir de cette cellule se décale du nombre de lignes trouvé par EQUIV et c'est donc cette cellule "décalée" qui est testée sur la même ligne que le code trouvé en colonne B.

En ce qui me concerne, la formule fonctionne mais tu peux mettre un exemple sur http://www.cijoint.fr
en donner ici le lien généré.
0