Nous allons voir ici comment combiner les deux fonctions INDEX et EQUIV pour faire le travail de RECHERCHEV dans les situations dans lesquelles elle est inopérante à cause de la contrainte de la clé de recherche en première colonne du tableau de référence.
Prenons un instant pour récapituler et voir où nous en sommes avec les fonctions de recherche.
Nous avons vu les fonctions RECHERCHEV, INDEX et EQUIV : cela paraît être un ensemble honnête d’outils de recherche. Et pourtant, une analyse rigoureuse nous révèle rapidement quelques faiblesses assez sérieuses de notre arsenal…
D’abord, RECHERCHEV, ça marche bien, mais… Nous avons vu qu’elle est totalement inopérante quand les clés de recherche se situent dans une colonne à droite de celle qui contient les valeurs à récupérer ; que faire dans ce cas-là ?
Ensuite INDEX, ça marche bien, mais… Que faire quand on ne dispose pas de numéros de ligne ou de colonne ? Comment identifier la colonne ou la ligne dont l’entête correspond, par exemple à un libellé tel un prénom, une ville, ou une référence d’article ?
Et enfin, EQUIV, ça marche bien, mais… On se demande, avec sa capacité à localiser un élément, à quoi peut-elle bien servir, comme çà, toute seule ?
Eh bien, nous allons voir ici que les fonctions INDEX et EQUIV, utilisées ensemble, vont permettre de surmonter la contrainte (de taille) de RECHERCHEV qu’est la nécessité pour cette fonction d’avoir la clé de recherche dans la première colonne du tableau de référence. Pour çà, reprenons l’exemple de l’hébergement des frères Dalton dans les différents pénitenciers des États-Unis, exemple par lequel nous avons dans l’article La fonction Excel RECHERCHEV est impuissante dans certaines situations illustré cette contrainte importante de RECHERCHEV.
Reprenons le tableau dans lequel il fallait retrouver, pour un pénitencier donné, le nom du Dalton qui y était détenu.
Puisque nous ne pouvons nous servir de la fonction RECHERCHEV, essayons de nous tourner vers d’autre fonctions… Tiens, pourquoi ne pas chercher du côté de la fonction INDEX ? Après tout, nous avons vu que la fonction INDEX répondait à l’injonction « Va chercher ! », moyennant la fourniture de deux informations : la plage de cellules dans laquelle elle doit chercher et les numéros d’ordre, au sein de cette plage, de la ligne et de la colonne à l’intersection desquelles se trouve l’information que l’on lui demande de chercher. Dans notre cas, la plage dans laquelle la fonction INDEX pourrait trouver le détenu est B4:B7.
Nous pourrions donc utiliser cette formule :
=INDEX(B4:B7;
Euh… La plage, d’accord, mais dans quelle ligne de cette plage la fonction INDEX doit-elle chercher ? Hmmm… Cette ligne, n’est-ce pas la même que celle à laquelle, au sein de la plage C4:C7, se trouve le pénitencier choisi ? Si, il s’agit bien de la même ligne, et donc du même numéro d’ordre. Si seulement nous avions ce numéro d’ordre… Mais au fait, le rôle de la fonction EQUIV n’était-il pas précisément celui-là, de donner l’emplacement, le numéro d’ordre d’une valeur donnée au sein d’une plage donnée. Mais si, bien sûr !
Si, dans F8, nous mettons la formule suivante :
=EQUIV(E8;C4:C7;0)
la formule nous donne le numéro d’ordre du pénitencier au sein de la plage C4:C7.
Mais au fait, ce numéro, n’est-il pas le même que le numéro d’ordre du détenu au sein de la plage B4:B7 ? Si ! Mais alors, il ne nous reste plus qu’à nous servir de ce numéro d’ordre en l’intégrant dans la fonction INDEX, afin qu’elle sache quelle ligne de la plage B4:B7 contient le détenu qui correspond au pénitencier choisi !
La formule devient alors :
=INDEX(B4:B7;EQUIV(E8;C4:C7;0))
(la fonction INDEX ne nécessite ici pas de numéro de colonne, car la plage concernée n’en contient qu’une)
Et voilà enfin surmontée la grande contrainte de la fonction RECHERCHEV.
Nous verrons par la suite que cette façon d’imbriquer la fonction EQUIV au sein de la fonction INDEX est un grand classique…
1 Commentaire Laisser un commentaire