Incorporer une condition à une fonction Index

Résolu/Fermé
Niquo Messages postés 18 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 23 mars 2009 - 19 mars 2009 à 19:45
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 20 mars 2009 à 18:09
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
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
20 mars 2009 à 09:07
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 18 Date d'inscription vendredi 28 mars 2008 Statut Membre Dernière intervention 23 mars 2009 2
20 mars 2009 à 10:29
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 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
20 mars 2009 à 18:09
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