Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

INDEX EQUIV vs RECHERCHEV : lorsque la recherche porte sur plusieurs colonnes
Par Pierre Fauconnier

Le , par Pierre Fauconnier

0PARTAGES

Pierre, comment on fait, dans ce cas-là?

Dans le cas où la recherche porte sur plusieurs colonnes, d'un côté ou de l'autre, voire des deux, on utilise INDEX EQUIV et on assemble les colonnes sur lesquelles la recherche porte, et puis surtout, on valide la formule d'une façon un peu particulière.

Dans l'exemple suivant, j'ai des ventes qui reprennent le nom de la peluche et la couleur comme données associées dans la même cellule, alors que dans le tableau des articles, les données sont séparées dans deux colonnes.



Il y a, en fait, plusieurs solutions:
  • Assembler les deux colonnes du tableau d'articles en créant une colonne supplémentaire;
  • Séparer les données de la première colonne du tableau des ventes en créant une colonne supplémentaire;
  • Utiliser INDEX EQUIV en validation matricielle, sans colonne supplémentaire.


N'étant pas fan, du tout, des colonnes intermédiaires, je préfère de très loin la troisième solution, qui n'est pas très complexe à mettre en oeuvre. Au passage, si on ne connaissait que RECHERCHEV, on serait bien embêté puisqu'avec RECHERCHEV, non seulement on serait obligé de passer par une colonne supplémentaire, mais en plus, on devrait la placer devant les autres. Ce serait fort laborieux à mettre en place, surtout dans l'idée de données importées d'un autre logiciel qu'il faudrait remettre en ordre à chaque import... Mission impossible, à tout le moins sans pertes de temps et énervement.

Dans ce cas-ci, ce n'est pas INDEX qui pose problème, mais EQUIV, et ce n'est pas non plus la valeur cherchée par EQUIV qui pose problème, mais bien la construction de la matrice dans laquelle chercher cette valeur.



On voit que, dans le tableau des ventes, l'article est mentionné par son nom suivi d'un tiret suivi de la couleur. On va donc, dans EQUIV, recréer cette construction en prenant la colonne du nom à laquelle on colle un espace puis la colonne de la couleur, en utilisant l'opérateur & pour coller les portions de texte entre elles (concaténer les chaines de caractères).





La fin de la formule est habituelle avec INDEX EQUIV, mais il faut valider la formule en matricielle!, car c'est la validation matricielle qui va permettre à Excel de comprendre cette syntaxe un peu particulière. Pour valider en matricielle, vous allez utiliser CTRL+SHIFT+ENTER. Excel va ajouter les accolades de part et d'autre de la formule pour signaler visuellement la validation matricielle (il ne faut pas saisir les accolades vous-même!, c'est la validation avec CTRL+SHIFT+ENTER qui les ajoute et qui enclenche la mécanique matricielle). Cette validation matricielle permet à Excel de reconstituer, ligne par ligne, les données en les assemblant grâce à l'opérateur &.



L'outil d'audit de formule permet de visualiser la construction de la matrice qui sera utilisée par EQUIV.



Et voilà le travail... Une formule matiricielle nous évite de devoir recourir à des colonnes de construction. Dans un prochain billet, je complèterai les infos sur INDEX EQUIV en matricielle pour que vous puissiez maîtriser ces deux fonctions sur le bout des doigts.

Bon travail avec Excel!

Une erreur dans cette actualité ? Signalez-le nous !