Monsieur Excel
Pour tout savoir faire sur Excel !

06 avril 2020

La vie de la fonction Recherche()

La fonction Recherche() est vraiment fondamentale. Elle présente la particularité d’être l’une des 31 fonctions de Visicalc, le premier tableur au monde, sous le nom de Lookup. Vous pourrez le revoir dans l’article Visicalc, le grand-père d’Excel du 28 février.

La première syntaxe de Recherche()

La fonction Recherche() originale d’Excel utilise la syntaxe =recherche(valeur;matrice).

Si la matrice est carrée ou verticale, les valeurs de sa première colonne doivent être en ordre croissant. Excel compare la valeur cherchée à la première colonne de la matrice, identifie la dernière ligne où la valeur reste inférieure ou égale à la valeur cherchée et renvoie alors la valeur de la matrice placée dans la même ligne et la dernière colonne.

Si la matrice est horizontale, le fonctionnement est le même, en inversant ligne et colonne.

Vous trouvez dans la première partie de la copie d’écran ci-dessous ce qui apparaît quand on entre =recherche( dans une cellule. 


Comme c’est souvent le cas avec des arguments facultatifs, Microsoft se trompe sur la syntaxe : il faut lire :
=recherche(valeur_cherchée ;vecteur_recherche[;vecteur_résultat]) 
En effet, le crochet doit être avant le « ; » sinon vous obtenez une erreur quand il n’y a pas de vecteur_résultat !

Je suis en désaccord avec la déclaration de Microsoft dans la copie d’écran ci-dessous : la fonction Recherche() est bien plus simple et plus rapide que les fonctions RechercheH ou RechercheV ou a fortiori que les solutions de type Index(Equi(…)).

La seconde syntaxe de Recherche()

Un certain nombre d’utilisateurs se plaignaient auprès de Microsoft que le résultat de la recherche soit obligatoirement à droite ou en dessous.

En réponse à cette demande, des années plus tard, Microsoft a créé une seconde syntaxe :
=recherche(valeur_cherchée;vecteur_recherche;vecteur_résultat)

Dans ce cas, Excel note la position de la valeur de référence dans le vecteur de recherche et ramène, dans le vecteur de résultat, la valeur qui occupe la même position.

Remarque – Si vous avez l’esprit vicieux, rien ne vous empêche alors d’utiliser un vecteur de recherche vertical et un vecteur de résultat horizontal. C’est en effet idéal pour créer la confusion dans l’esprit de l’utilisateur !