Recherche multi critère dans un tableau

MC44

XLDnaute Nouveau
Bonjour à tous,

Je cherche à extraire les valeurs de la première ligne d'un tableau en fonction de critères contenus dans les 3 premières colonnes de ce tableau. Je joins à ma demande un fichier qui je l'espère vous aidera à une meilleure comprehension. J'ai fait quelques essais avec des fonctions index,equiv ou recherche qui se sont hélas révélés être infructueux.
Je vous remercie par avance de votre aide.
 

Pièces jointes

  • Recherche multicritères dans un tableau.xlsx
    11.2 KB · Affichages: 30

Modeste

XLDnaute Barbatruc
Re : Recherche multi critère dans un tableau

Bonjour MC44,

Avec une plage nommée "laLigne" (faisant référence à
Code:
=DECALER(Sheet1!$C$9:$M$9;EQUIV(Sheet1!$A$1&Sheet1!$B$1;Sheet1!$A$9:$A$20&Sheet1!$B$9:$B$20;0)-1;0)
... voir Formules > Gestionnaire de noms), un simple INDEX - EQUIV fait "le reste" ... Si j'ai bien compris!?
 

Pièces jointes

  • recherche multicriteres dans un tableau (MC44).xlsx
    12.3 KB · Affichages: 30

MC44

XLDnaute Nouveau
Re : Recherche multi critère dans un tableau

Bonjour MC44,

Avec une plage nommée "laLigne" (faisant référence à
Code:
=DECALER(Sheet1!$C$9:$M$9;EQUIV(Sheet1!$A$1&Sheet1!$B$1;Sheet1!$A$9:$A$20&Sheet1!$B$9:$B$20;0)-1;0)
... voir Formules > Gestionnaire de noms), un simple INDEX - EQUIV fait "le reste" ... Si j'ai bien compris!?

Bonjour Modeste,
Merci beaucoup pour votre réponse rapide ET efficace.
Vous avez parfaitement compris le besoin. En ce qui me concerne il me faudra beaucoup plus de temps pour comprendre la logique du code qu'à vous pour me répondre.:eek:
Bonne continuation sur ce forum.
 

MC44

XLDnaute Nouveau
Re : Recherche multi critère dans un tableau

Bonjour Modeste,
Merci beaucoup pour votre réponse rapide ET efficace.
Vous avez parfaitement compris le besoin. En ce qui me concerne il me faudra beaucoup plus de temps pour comprendre la logique du code qu'à vous pour me répondre.:eek:
Bonne continuation sur ce forum.

Bonjour Modeste,

Je me permets de solliciter une fois encore votre aide.
Je souhaiterais aller encore un peu plus loin dans la formule en cherchant non plus cette fois en C1 un chiffre mais une lettre qui serait intégrée dans des chaines de caratères du tableau.
Je joins le fichier à ma demande. Cela sera peut-être plus explicite.
Merci d'avance.
 

Pièces jointes

  • recherche-multi-critere-dans-un-tableau rév 1.xlsx
    12.1 KB · Affichages: 21

Modeste

XLDnaute Barbatruc
Re : Recherche multi critère dans un tableau

Bonjour,

MC44 à dit:
en cherchant non plus cette fois en C1 un chiffre mais une lettre qui serait intégrée dans des chaines de caratères du tableau.
Ouille!!

Euh, au passage, ce n'était pas en C1 qu'on cherchait un chiffre, mais c'est dans laLigne qu'on recherchait la valeur figurant en C1 :confused:

Pour cette nouvelle question, il faut que tu sois certain qu'une seule valeur par ligne contiendra un 'x'! En tout cas la formule ci-dessous ne trouvera que la première occurence dans la ligne concernée.
Si c'est toujours un 'x' qu'il faut chercher dans une chaîne, tu peux essayer:
Code:
=INDEX($C$13:$M$13;EQUIV(VRAI;ESTNUM(CHERCHE("*x*";laLigne));0))

Si ce caractère risque de changer et que tu veux utiliser le contenu de C1 dans la formule, teste:
Code:
=INDEX($C$13:$M$13;EQUIV(VRAI;ESTNUM(CHERCHE("*"&C1&"*";laLigne));0))

Attention: dans les 2 cas, une fois la formule collée en D1, il faut valider avec Ctrl+Shift+Enter
Re-attention: si tu utilises la seconde, il faudra sans doute encore la modifier un peu (prévoir le cas où C1 serait vide!?)
 

MC44

XLDnaute Nouveau
Re : Recherche multi critère dans un tableau

Bonjour,

Ouille!!

Euh, au passage, ce n'était pas en C1 qu'on cherchait un chiffre, mais c'est dans laLigne qu'on recherchait la valeur figurant en C1 :confused:

Pour cette nouvelle question, il faut que tu sois certain qu'une seule valeur par ligne contiendra un 'x'! En tout cas la formule ci-dessous ne trouvera que la première occurence dans la ligne concernée.
Si c'est toujours un 'x' qu'il faut chercher dans une chaîne, tu peux essayer:
Code:
=INDEX($C$13:$M$13;EQUIV(VRAI;ESTNUM(CHERCHE("*x*";laLigne));0))

Si ce caractère risque de changer et que tu veux utiliser le contenu de C1 dans la formule, teste:
Code:
=INDEX($C$13:$M$13;EQUIV(VRAI;ESTNUM(CHERCHE("*"&C1&"*";laLigne));0))

Attention: dans les 2 cas, une fois la formule collée en D1, il faut valider avec Ctrl+Shift+Enter
Re-attention: si tu utilises la seconde, il faudra sans doute encore la modifier un peu (prévoir le cas où C1 serait vide!?)

TOP.
Je viens de tester la première formule et elle répond trés bien à mes besoins. Effectivement je serai vigilent à ce qu'il n'y ait qu'une occurrence par ligne du caractère utilisé.
Encore merci pour ta patience et tes réponses trés pertinentes.
 

MC44

XLDnaute Nouveau
Re : Recherche multi critère dans un tableau

Bonjour Modeste,
J'ai une autre demande sur un mode un peu identique avec 2 critères et sans redondance :


B1 : mars C1 :avril D1 :mai E1 :juin
A4 : 100 1625 1629 1634 1642
A5 : 200 1621 1623 1640 1648
A6 : 300 1614 1614 1621 1623
A7 : 400 1615 1618 1627 1642
Je prends la valeur 200 et 1640 et la formule me renvoie mai
J'ai fais quelques manip mais cela ne focntionne pas.
Merci par avance de ton aide
 

Modeste

XLDnaute Barbatruc
Re : Recherche multi critère dans un tableau

Bonjour,

La première interrogation serait: "cette questiobn a-t-elle encore un rapport avec le titre du message initial?"
Si non, ouvre un nouveau fil.
Si oui, joins un petit bout de fichier (plutôt que de nous obliger à en recréer un de toutes pièces) et re-précise ta demande, si tu veux bien. Dans le fichier, tu indiqueras dans quels cas tel résultat doit être obtenu et pourquoi ... toujours si tu veux bien ;)
 

MC44

XLDnaute Nouveau
Re : Recherche multi critère dans un tableau

Bonjour Modeste,

Je te confirme que le sujet est toujours en relation avec le titre.
Je joins à ce message un fichier qui explique le besoin.
J'ai dans le laps de temps continué à regarder en repartant de ta formule avec "LaLigne" en enlevant un critère.
Cela fonctionne bien. Cependant existerait-il selon toi plus simple?
Merci d'avance de ton aide
P.S. : Existe-il une solution si j'ai deux valeurs identiques dans la tables (exemple B6 et C6)?
 

Pièces jointes

  • essai.xlsx
    10.6 KB · Affichages: 25
  • essai.xlsx
    10.6 KB · Affichages: 26
  • essai.xlsx
    10.6 KB · Affichages: 33

Modeste

XLDnaute Barbatruc
Re : Recherche multi critère dans un tableau

Bonsoir,

De ton exemple, je ne vois pas bien le lien avec la première demande, puisque là, il fallait trouver dans une ligne correspondant à un nom et un prénom donnés, une valeur spécifique. Ici, ça me semble plus simple!?

Tu as transformé la formule proposée au départ en une formule matricielle :confused: Je n'en vois pas vraiment la raison?

Avec ton dernier exemple, on n'est même pas contraints d'utiliser la plage nommée ("laLigne"): en H4, tu peux écrire
Code:
=INDEX($B$3:$E$3;1;EQUIV(G4;DECALER($B$3:$E$3;EQUIV(G3;$A$4:$A$9;0);0);0))

Pour ce qui est de ta question sur "que faire s'il y a plusieurs fois le même montant sur une ligne?" la réponse sera: "tout dépend de ce que tu cherches à obtenir!?"

[Edit:] allez, faisons une hypothèse raisonnable sur ce que tu chercherais à obtenir! Jette un œil à la pièce jointe et aux cellules bleues. Là, la formule est matricielle!
 

Pièces jointes

  • Multi-résultats (MC44).xlsx
    11.6 KB · Affichages: 25
Dernière édition:

MC44

XLDnaute Nouveau
Re : Recherche multi critère dans un tableau

Bonjour Modeste,

Un double merci. Tout d'abord pour la simplification de la formule qui était ce que je cherchais sans succès. Je me suis fourvoyé avec une adaptation de la formule matricielle que tu m'avais fournie lors de nos précédents échanges.
Ensuite pour l'hypothèse non seulement raisonnable mais aussi trés pertinente que tu as prise dans le fichier joint.
Bonne continuation sur ce trés bon site.

Bonsoir,

De ton exemple, je ne vois pas bien le lien avec la première demande, puisque là, il fallait trouver dans une ligne correspondant à un nom et un prénom donnés, une valeur spécifique. Ici, ça me semble plus simple!?

Tu as transformé la formule proposée au départ en une formule matricielle :confused: Je n'en vois pas vraiment la raison?

Avec ton dernier exemple, on n'est même pas contraints d'utiliser la plage nommée ("laLigne"): en H4, tu peux écrire
Code:
=INDEX($B$3:$E$3;1;EQUIV(G4;DECALER($B$3:$E$3;EQUIV(G3;$A$4:$A$9;0);0);0))

Pour ce qui est de ta question sur "que faire s'il y a plusieurs fois le même montant sur une ligne?" la réponse sera: "tout dépend de ce que tu cherches à obtenir!?"

[Edit:] allez, faisons une hypothèse raisonnable sur ce que tu chercherais à obtenir! Jette un œil à la pièce jointe et aux cellules bleues. Là, la formule est matricielle!
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 848
Membres
103 972
dernier inscrit
steeter