INDEX/EQUIV sur plusieurs plages de recherche

  • Initiateur de la discussion Initiateur de la discussion Guigui
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Guigui

XLDnaute Occasionnel
Bonjour,

J'utilise la fonction
INDEX et EQUIV pour chercher une valeur dans une plage et me renvoyer une valeurs correspondante ...

Comment faire pour faire la recherche sur plusieur plage differentes ?

Ci joint un pti exemple...

Merci d'avance

Guillaume
 

Pièces jointes

Re : INDEX/EQUIV sur plusieurs plages de recherche

Bonsoir Guillaume,

Sur la base de ton exemple, un essai avec une formule matricielle :

Code:
=INDEX($A$1:$E$14;MAX(($A$1:$E$14=I11)*LIGNE($A$1:$A$14));
MAX(($A$1:$E$14=I11)*COLONNE($A$1:$E$1))-1)
Formule matricielle à valider par CTRL + MAJ + ENTREE

Suppose qu'il n'y ait pas de doublons et que les "minis" tableaux soient regroupés.

Je te laisse tester

@+
 
Re : INDEX/EQUIV sur plusieurs plages de recherche

Re Tibo,

Je n'arrive pas à le caler sur mon projet ... j'ai bien valider correctement
pour testé j'ai simplement reproduit l'exemple joint dans mon projet (meme données, meme plages ... ) et ca ne fonctionne pas !

simplement, n'est - il pas possible de "cumuler" plusieurs plages de recherche ?
 
Re : INDEX/EQUIV sur plusieurs plages de recherche

Tibo, regarde alors mon fichier joint et peux tu me dire se qui cloche ??

David84, Yeah 😉 ca me plait bien ca 🙂
Je voudrais juste comprendre maintenant pourquoi la proposition de tibo seulement "transposer" ailleur... ne fonctionne pas

Merci à vous deux
Guillaume
 

Pièces jointes

Dernière édition:
Re : INDEX/EQUIV sur plusieurs plages de recherche

Re,

David84, ta proposition fonctionne, mais si je précise que la definition de nom "zone" est dans un autre onglet ca change quelque chose ?
Car j'ai ajuster le nom "zone" avec mon projet et la cellule renvoyé ne correspond pas (et d'ailleur je comprend pas comment il tombe sur cette cellule !)
...

Merci par avance
 
Re : INDEX/EQUIV sur plusieurs plages de recherche

re,

La formule fonctionnait sur la premier tableau, car le tableau commençait en A1.

Ici, il faut adapter ainsi :

Code:
=INDEX($M$39:$Q$52;MAX(($M$39:$Q$52=U49)*LIGNE($M$39:$M$52)[B][COLOR=Blue]-38[/COLOR][/B]);
MAX(($M$39:$Q$52=U49)*COLONNE($M$39:$Q$39))[COLOR=Blue][B]-13[/B][/COLOR])

Matricielle, donc toujours CTRL + MAJ + ENTREE

La formule de David ne présente pas cet inconvénient et est donc à privilégier

@+
 
Re : INDEX/EQUIV sur plusieurs plages de recherche

Re,
sélectionner la plage M39:Q52 et la nommer zone dans la zone "nom" (à gauche de la zone de formule), puis copier la formule en adaptant les cellules de recherche (en gras)
=INDIRECT(ADRESSE(MIN(SI((zone<>"")*(ESTNUM(CHERCHE($I11;zone)));LIGNE(zone)));MIN(SI((zone<>"")*(ESTNUM(CHERCHE($I11;zone)));COLONNE(zone)))-1))
et valider la formule matricielle en appuyant simultanément sur les touches Ctrl, Maj et entrée.
Si le nom zone est déjà attribué dans la même feuille de calcul ou si tu préfères un autre nom, tu n'as qu'à modifier en conséquence.
A+
 
Re : INDEX/EQUIV sur plusieurs plages de recherche

Re,

David84. ma zone "nom" est bien délimiter mais ca ne fonctionne toujours pas ...

Tibo, regarde les cellules en gras (stp .. 🙂 et sais tu pourquoi cela affiche "0" et quand je saisie un poids dans la meme colonne ... ca fonctionne.

On dirais que si dans la colonne il n'y a qu'une valeurs <> 0, ca ne match pas !?

Je précise que le but de la manoeuvre est de trouver la "position" (dans feuille LIMITATIONS) qui correspond au poids (dans la feuille "ORDO...)

merci 🙂
 

Pièces jointes

Re : INDEX/EQUIV sur plusieurs plages de recherche

Bonjour,

Ce que tu constates est normal.

S'il n'y a qu'un seul poids dans une colonne, le total est donc égal à ce poids.

Et comme indiqué hier, il ne faut pas qu'il y ait de doublons.

Or, Excel trouve deux fois la valeur cherchée (valeur saisie et total) et ta formule se réfère à ce total.

Je verrais si je trouve un peu temps pour adapter.

Bonne journée


@+

Edit : Je te propose cette modification en E7 :

Code:
=INDEX(zone;MIN(SI(zone=D7;(zone=D7)*LIGNE(zone)))-4;MIN(SI(zone=D7;
(zone=D7)*COLONNE(zone)))-1)

Matricielle, donc CTRL + MAJ + ENTREE

Je n'ai pas regardé la formule de David. Peut-être passera-t-il pour adapter. Sinon, je regarderai, mais pas tout de suite.


@+
 
Dernière édition:
Re : INDEX/EQUIV sur plusieurs plages de recherche

Bonjour Guigui, salut Tibo, David,

Voir le fichier joint.

Cette solution permet de travailler avec un nombre quelconque de plages de recherche, car celles-ci sont nommées.

Edit : s'il peut y avoir des doublons entre les plages, modifier la définition de plage :

Code:
=INDIRECT("plage"&SI(NB.SI(plage1;Feuil1!I11);1;SI(NB.SI(plage2;Feuil1!I11);2;3)))

Mais on est alors limité par le nombre maximum de fonctions SI imbriquées. Voir fichier (2)

A+
 

Pièces jointes

Dernière édition:
Re : INDEX/EQUIV sur plusieurs plages de recherche

Re,

Pour ceux qui aiment VBA, cette fonction macro assez simple :

Code:
Function RECH(x As Variant) As Variant
RECH = Range("plage1,plage2,plage3").Find(x, LookIn:=xlFormulas, LookAt:=xlWhole).Offset(, -1)
End Function

Edit : ici le nom défini plage est inutile bien sûr.

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour