La fonction RECHERCHEV d'EXCEL permet de faire une recherche dans un tableau de valeurs et de renvoyer la valeur trouvée dans une cellule déterminée à l'avance. On pourra, par exemple, trouver la désignation et le prix unitaire d'un produit en saisissant simplement sa référence.
La syntaxe de cette fonction est la suivante :
=RECHERCHEV(valeur cherchée;table de référence;numéro colonne;valeur proche)
- Cette fonction va rechercher, dans la première colonne de la "table de référence", la valeur indiquée par "valeur cherchée".
- Quand elle aura trouvé cette valeur, elle va renvoyer le contenu de la cellule se trouvant sur la même ligne que la valeur trouvée et dans la colonne désignée par "numéro colonne".
- Si la "valeur cherchée" n'existe pas dans la "table de référence", la fonction affichera :
- soit un message d'erreur (#N/A), si l'argument "valeur proche" est FAUX (ou 0);
- soit le contenu de la colonne, déterminée par "numéro colonne", correspondant à la plus grande valeur inférieure ou égale à la "valeur cherchée", si l'argument "valeur proche" est VRAI (ou 1); dans ce dernier cas, la "table de référence" doit être triée sur la première colonne.
- L'argument "valeur proche" peut prendre deux valeurs : VRAI ou FAUX.
- Si l'argument est VRAI (ou 1), Excel prend la valeur inférieure la plus proche s'il ne trouve pas la valeur exacte.
- Si l'argument est FAUX (ou 0), Excel renvoie la valeur exacte, ou un message d'erreur s'il ne trouve pas de valeur exacte.
Dans ce premier exemple, on utilise cette fonction pour retrouver la "Désignation" et le "Prix unitaire" d'un produit :
Figure 1
Dans la colonne "Désignation", en B2, on écrit la formule :
=RECHERCHEV(A2;$G$2:$I$7;2;FAUX)Voici ce que fait EXCEL lorsqu'il exécute la formule qui se trouve en B2 :
- EXCEL consulte la cellule A2 ("valeur cherchée") et y trouve la valeur P011;
- il consulte la 1ère colonne du tableau $G$2:$I$7 ("table de référence");
- il trouve cette valeur dans la 5ème ligne de la "table de référence" ("valeur proche" = FAUX);
- EXCEL écrit dans la cellule B2 la valeur située dans la 2ème colonne ("numéro colonne") du tableau "table de référence" c'est-à-dire "Coca".
Dans la colonne " Prix unitaire ", en D2, on écrit la formule :
=RECHERCHEV(A2;$G$2:$I$7;3;FAUX).Dans l'exemple suivant, la valeur P007 n'existe pas dans la première colonne de la table de référence, la fonction renvoie une erreur (#N/A).
Figure 2
On peut facilement modifier la formule pour indiquer le message "Réf. inconnue" à la place de l'erreur #N/A, il suffit d'indiquer en B2 :
=SI(ESTNA(RECHERCHEV(A2;$G$2:$I$7;2;FAUX));"Réf. Inconnue";RECHERCHEV(A2;$G$2:$I$7;2;FAUX))Figure 3
Il est bien évident que cet exemple se prête à l'utilisation de noms à la place des références et à l'utilisation de deux classeurs. Le premier contiendra la table de référence et le second, la facture proprement dite.
Dans ce deuxième exemple, on va "offrir" à chaque vendeur une prime de fin d'année proportionnelle à son chiffre de ventes annuel. Cette proportionnalité est établie en fonction de la table suivante : pour un chiffre de vente compris entre 25 000 et 50 000 €, il reçoit 75 €, entre 50 000 et 100 000 €, il reçoit 150 €, etc. (Table des primes). A l'aide de la fonction RECHERCHEV, on va calculer pour chaque personne le montant de la prime (Colonne C).
Figure 4
Dans la colonne " Prime ", en C3, on écrit la formule :
=RECHERCHEV(B3;$E$3:$F$9;2;VRAI)Voici ce que fait EXCEL lorsqu'il exécute la formule qui se trouve en C3 :
- EXCEL consulte la cellule B3 ("valeur cherchée") et y trouve la valeur 117 824;
- il consulte la 1ère colonne du tableau $E$3:$F$9 ("table de référence");
- il trouve la plus grande valeur inférieure ou égale à cette donnée dans la 4ème ligne de la "table de référence" ("valeur proche"=VRAI);
- EXCEL écrit dans la cellule C3 la valeur située dans la 2ème colonne ("numéro colonne") du tableau "table de référence" c'est-à-dire 200 €.
ATTENTION : dans cet exemple, la "table de référence" doit être triée en ordre croissant sur les valeurs de la première colonne (colonne E dans notre exemple).