Plusieurs critères pour INDEX+EQUIV

Bonjour le forum !

Je suis en train de m'arracher les cheveux sur un problème qui je suis sûr n'est pas si compliqué !

Je cherche à réaliser une recherche verticale mais avec deux critères sur deux colonnes différentes.

Je sais que je pourrais simplifier la chose en concatenant mes infos à la fois dans mon tableau de recherche et dans ma formule, mais il doit bien y avoir un moyen de le faire sans concaténer ??

Je joint un fichier en exemple, très simpliste mais pour que vous compreniez mieux à quoi ressemble ma problématique.

J'ai essayé ceci :

=INDEX(BDD!$A$1:$C$11;ET(EQUIV(Recap!$A2;BDD!$A:$A;0);EQUIV("Mercredi";BDD!$B:$B;0));3)

mais la formule renvoie toujours le contenu de l'en-tête.

Donc si jamais quelqu'un a une idée, je suis preneur !

Merci d'avance

PS : J'intégrerai ensuite cette solution à une macro, raison pour laquelle je ne souhaite pas passer par des filtres, tcd ou concaténer

Bonjour,

Cette formule, c'est de la science-fiction !

=INDEX(BDD!$A$1:$C$11;ET(EQUIV(Recap!$A2;BDD!$A:$A;0);EQUIV("Mercredi";BDD!$B:$B;0));3)

  • -> EQUIV renvoie la position du premier élément correspondant à l'élément cherché au sein d'une plage
  • -> ET sert à vérifier qu'un ensemble de conditions sont toutes respectées

Une position dans une liste n'est pas une condition qui renvoie VRAI ou FAUX, donc un EQUIV dans un ET... C'est pas une bonne solution.

Ta problématique est surement réalisable avec un SOMMEPROD, mais je laisse le soin aux connaisseurs de te proposer une telle formule. Sinon, tu peux utiliser des filtres ou un TCD avec des filtres sur tes conditions pour n'afficher que les données correspondantes.

Si tes données sont triées selon un critère (ici ton critère 1), de sorte que des valeurs identiques soient les unes à la suite des autres, tu peux utiliser une formule associant INDEX, EQUIV et DECALER. DECALER te sert à restreindre la plage de recherche aux données de la première condition, sur laquelle tu réalises alors une RECHERCHEV ou INDEX + EQUIV classique.

Voilà donc une proposition de formule :

=SIERREUR(INDEX(DECALER(BDD!$B$1;EQUIV($A2;BDD!$A$2:$A$11;0);1;NB.SI(BDD!$A$2:$A$11;$A2));EQUIV("Mercredi"; DECALER(BDD!$B$1;EQUIV($A2;BDD!$A$2:$A$11;0);0;NB.SI(BDD!$A$2:$A$11;$A2));0));"")

Vu la dimension, je pense que la concaténation est aussi pratique...

Bonjour,

Cette formule, c'est de la science-fiction !

=INDEX(BDD!$A$1:$C$11;ET(EQUIV(Recap!$A2;BDD!$A:$A;0);EQUIV("Mercredi";BDD!$B:$B;0));3)

  • -> EQUIV renvoie la position du premier élément correspondant à l'élément cherché au sein d'une plage
  • -> ET sert à vérifier qu'un ensemble de conditions sont toutes respectées

Une position dans une liste n'est pas une condition qui renvoie VRAI ou FAUX, donc un EQUIV dans un ET... C'est pas une bonne solution.

Ah bah oui vu comme ça.. J'avais bien remarqué que ça ne pouvait pas fonctionner, au moins maintenant je sais pourquoi

SOMMEPROD.. Il va donc bien falloir que je m'y mette à cette formule, je l'ai esquivé jusqu'ici mais je crois qu'un jour je vais bien devoir apprendre à l'utiliser.

En attendant les experts, je vais fouiller du coté de INDEX, EQUIV et DECALER. C'est vrai que je n'y avais pas pensé, mais c'est peut-être jouable !

Merci pour ta réponse !

EDIT :

Et merci pour la formule ! Effectivement un peu longue, mais si tu voyais certaines autres que j'ai dans mon fichier..

Je vais analyser tout ça

bonjour

une perruque ????

331slimshady.xlsx (9.67 Ko)

cordialement

Bonjour tulipe, et merci pour ton retour !!

Encore une belle formule

Peux-tu stp m'aider à décortiquer un peu la façon dont tu as utiliser SOMMEPROD ?

- Pourquoi combiner cela avec la fonction MAX ?

- Je ne comprends pas bien la fin : *LIGNE(BDD!A$2:$A$11)-1, tu peux m'éclairer stp ?

Merci beaucoup pour vos réponses rapides en tout cas, vous m'êtes tous d'une grande aide !!

re

SOMMEPROD recupere avec des 0 ou des 1 ce qui correspond à la croisée des deux critères ,donc pour recupérer le n° de ligne ad hoc , on les remultiplie par les n° de ligne de la plage .......Mais

vu que le tablo commence à la ligne 2 (hors entete) on se retrouve avec des -1 et le bon numero qui correspond rellement et sera toujours positif ,donc , c'est Max qui le recupère

cordialement

Re,

Merci pour ces plus amples explications !

Les deux solutions semblent fonctionner, je vais adapter l'une ou l'autre dans ma macro en fonction de ce qu'il y a plus simple.

Bonne journée

Rechercher des sujets similaires à "criteres index equiv"