dimanche 5 février 2012

La RechercheV démystifiée

On trouve sur internet un grand nombre de tutoriels sur la RechercheV. C'est peut-être la fonction la plus expliquée, décortiquée, schématisée, illustrée, etc. À tel point que je me suis demandé s'il ne s'agissait pas d'un passage obligé, LE sujet qu'il faut avoir traité quand on ambitionne d’exposer des connaissances à propos d'un tableur, un baptême de feu en quelque sorte.

Je sacrifie ici à cette (hypothèse de) tradition.

C'est très simple : la RechercheV réalise dans Excel une tâche qu'on fait couramment dans la vie quotidienne !



C'est exactement ce qu'on fait quand on veut localiser un chapitre particulier dans un livre et qu'on cherche son numéro de page dans la table des matières.

Par exemple, la question que je me pose ici est : où commence le chapitre qui parle de “Pantagruel louant les conseils des muets” ? (Gargantua, Livre tiers, Rabelais)

Dans ma tête, il va se passer ceci :
- d'abord je m'assure que j'ai bien une table des matières sous les yeux (c'est indiqué en haut de la page mais en plus, sans en être conscient, je vois que c'en est bien une : elle est organisée en deux colonnes, la première est assez large et liste les libellés des chapitres, la deuxième est plus étroite et comporte juste des numéros de page)
- ensuite je recherche le libellé “Pantagruel louant les conseils des muets” dans la première colonne ("alors voyons voir, ça non, ça non, ça non, ça non… ah voilà je l'ai !")
- puis je déplace mon regard vers la droite ("merci les lignes de suite…")
- et enfin je note le numéro indiqué dans la deuxième colonne ("voilà : 49 !").

Faisons maintenant le lien avec Excel.
Je me suis posé trois questions :
1. je cherche quoi ? – ce fameux chapitre
2. je cherche ? – dans la table des matières
3. quelle colonne m'intéresse ? la deuxième, celle avec les numéros de page.

La tâche que j'ai réalisée dans ma tête, c'est :
RechercheV   ( ce fameux chapitre   ;   dans la table des matières   ;   2e colonne )

De manière générique, les éléments à indiquer à cette fonction pour qu'elle puisse faire son travail sont :
RechercheV   ( quoi ?   ;   où ?   ;   quelle colonne ? )
C’est ce que demande l’info-bulle qui apparaît lorsqu’on saisit la formule directement :

(Oui, cette fonction demande quatre arguments. On parle ici des trois premiers d’abord, on verra le quatrième plus tard.)


Quelques autres exemples dans la vie quotidienne.

Une RechercheV, c'est aussi ce qu'on fait à l'entrée d'une station essence pour connaître le prix du carburant dont on a besoin.

Si on veut savoir le prix du gazole, on cherche “gazole” sur la pancarte et on note la valeur située dans la deuxième colonne. Autrement dit, on effectue le raisonnement suivant :
RechercheV   ( diesel   ;   pancarte   ;   2e colonne )
pour trouver 1,369 €/l !


Parfois, ce qu'on cherche n'est pas dans la deuxième colonne mais un peu plus loin sur la droite. C'est le cas dans les annuaires, où le nom d'une personne est suivi d'abord de son adresse et ensuite de son numéro de téléphone.

Pour relever le numéro de téléphone, on regarde donc dans la troisième colonne, c'est-à-dire qu'on fait ceci :
RechercheV   ( Monsieur Dupont   ;   annuaire   ;   3e colonne )


Autre cas de figure : dans un tableau qui compte un certain nombre de colonnes, il arrive que le quoi ne soit pas dans la première colonne. Dans ce cas, il faut regarder différemment le : on ne prendra en compte que le fragment de tableau à partir de la bonne colonne et on va ignorer les colonnes qui précédent. Autrement dit, le sera défini seulement à partir de la colonne dans laquelle se trouve le quoi.

Illustration avec le tableau d’affichage des départs dans un aéroport :

Je prends le vol OD 0061 pour Séoul et je veux savoir quelle est ma porte d’embarquement. La première colonne présente les heures des vols. Ce n’est pas une information suffisante pour identifier la bonne ligne : il pourrait très bien y avoir plusieurs vols à la même heure. Cette colonne me sert juste à me repérer dans la bonne région du tableau.

C’est donc à partir de la deuxième colonne que je raisonne : je définis une partie pertinente du tableau d’affichage, qui commence à la deuxième colonne et va vers la droite.

L’information que je cherche (la porte d’embarquement) figure certes dans la 4e colonne de l’ensemble, mais il s’agit en fait de la 3e colonne à partir de ma colonne de recherche. Traduit en langage Excel, mon raisonnement est :
RechercheV   ( OD 0061   ;   partie pertinente du tableau d’affichage   ;   3e colonne )


Et le dernier argument de la fonction RechercheV ?

On a vu jusqu’ici les trois premiers arguments : quoi ? où ? quelle colonne ? Manipuler le quatrième argument est un peu plus complexe. C’est une valeur booléenne (VRAI ou FAUX) qui sert à définir si, oui ou non, on autorise Excel à chercher dans la première colonne une valeur proche du quoi plutôt que sa valeur exacte.

L’idée de “valeur proche” s’entend au sens numérique (elle ne concerne donc que des valeurs chiffrées) et siginifie précisément le plus grand nombre qui soit plus petit que la valeur cherchée. Ce ne serait pas pertinent d’en parler dans le cas d’une recherche textuelle ! Or dans les cas de figure qu’on a vus jusqu’à présent on cherchait des mots (Pantagruel louant les conseils des muets ou gazole ou OD 0061). Dans ces cas-là, cet argument ne peut donc prendre que la valeur FAUX.

Quand est-ce que c’est pertinent, alors ? Dans quel type de situations le quoi est-il un nombre et non pas du texte?
La grille des taux d'imposition marginale par tranche est un bon exemple.

Supposons que je me pose la question suivante : “quelle est le taux marginal d’imposition à 20 000 € ?”
Raisonner de la même manière que précédemment ne mènerait à rien puisqu’il n’y a pas de valeur “20 000” dans la grille.

Pourtant, la réponse est bien là. Simplement, je dois raisonner autour de l’idée de seuils. Pas à pas, mon raisonnement sera le suivant :
- je parcours la première colonne de la grille,, avec à l’esprit le nombre que je cherche (“20 000”)
- je cherche le premier seuil qui y soit supérieur (“ça non, ça non, ça non... ça y est je l’ai trouvé : 26 421”)
- alors je remonte maintenant d’une ligne ! (“voilà, je suis sur la plus grande valeur qui soit plus petite que le nombre que je teste : 11 897”)
- et je termine maintenant comme dans les cas précédents, en regardant vers la droite (“résultat final : 14,0%”).

Traduit en Excel, ce raisonnement est :
RechercheV   ( 20 000   ;   grille   ;   2e colonne   ;   VRAI )

De manière générique, la fonction RechercheV pose donc les questions suivantes :
RechercheV   ( quoi ?   ;   où ?   ;   quelle colonne ?   ;   comment ? )
sachant que le comment ? revient à se demander “lorsque le quoi est un nombre, est-ce qu’on veut chercher la plus grande valeur qui soit plus petite que ce quoi ?”.

Pour raisonner ainsi sur des seuils, Excel pose un seul prérequis : il faut que la grille de référence (le ) soit triée par ordre croissant sur la colonne dans laquelle on cherche le quoi.

Ce quatrième argument est facultatif. L’ennui c’est que, quand on ne l’utilise pas, c’est comme si on déclarait VRAI. Dans les cas où le quoi est du texte, le résultat va être hasardeux. Dans ces cas-là, il faut donc systématiquement préciser FAUX !


Quelques éléments généraux pour terminer.

Le “V”, c’est pour “vertical”, puisque cette fonction réalise une recherche verticale dans la première colonne d’une plage d’informations. Il existe aussi une fonction RechercheH, qui fait la même chose mais à l’horizontale : rechercher une valeur dans la première ligne d’une plage d’informations et renvoyer la valeur d’une certaine ligne située plus bas.

Pour le quatrième argument, au lieu de VRAI ou FAUX, on peut aussi entrer les valeurs 1 ou 0. C’est équivalent et ça va plus vite à écrire...

Le petit nom anglais de cette fonction : VLookup !

Aucun commentaire:

Enregistrer un commentaire