13 min de lecture

RECHERCHEV, RECHERCHEH et RECHERCHEX dans Google Sheets (VLOOKUP, HLOOKUP, XLOOKUP) : guide et exemples

Aller chercher un prix, un nom ou un taux dans une autre table : la syntaxe de RECHERCHEV, RECHERCHEH et RECHERCHEX, leurs différences, les pièges (FAUX oublié, #N/A, recherche à gauche, colonnes insérées) et quand passer à INDEX/EQUIV, avec des exemples prêts à copier.

  • Google Sheets
  • Formules
  • RECHERCHEV
  • Tutoriel
Schéma : feuille partagée versus base applicative Croissance des usages Sheets App + rôles + audit

Noms français, noms anglais

Dans un fichier réglé sur la France (Fichier > Paramètres > Paramètres régionaux), les fonctions ont leur nom français et les arguments se séparent par un point-virgule. Si vous trouvez un tutoriel en anglais, voici les correspondances :

FrançaisAnglaisRôle
RECHERCHEVVLOOKUPRecherche verticale (dans une colonne)
RECHERCHEHHLOOKUPRecherche horizontale (dans une ligne)
RECHERCHEXXLOOKUPRecherche dans n’importe quel sens
INDEX / EQUIVINDEX / MATCHValeur à une position / position d’une valeur
SI.NON.DISP / SIERREURIFNA / IFERRORRemplacer une erreur
FAUX / VRAIFALSE / TRUEValeurs logiques

Les exemples utilisent un onglet Tarifs fictif :

A : RéférenceB : DésignationC : CatégorieD : Prix HT (€)
2P-101Clé USB 64 GoAccessoires12
3P-102Écran 27 poucesÉcrans189
4P-205Clavier sans filAccessoires35
5P-310Station d’accueilConnectique129

RECHERCHEV : la recherche verticale

RECHERCHEV(clé_recherche; plage; index; [est_trié])
  • clé_recherche : la valeur cherchée, par exemple la référence saisie en G2.
  • plage : la table, qui doit commencer par la colonne où l’on cherche. Si la clé est en colonne A, la plage commence en A.
  • index : le numéro de la colonne à renvoyer, compté à partir de 1 dans la plage.
  • est_trié : FAUX pour une correspondance exacte. À toujours renseigner.

Le prix de la référence saisie en G2 (P-205) :

=RECHERCHEV(G2; Tarifs!$A$2:$D$5; 4; FAUX)

Résultat : 35. Les $ figent la plage quand vous recopiez la formule vers le bas ; avec des colonnes entières (Tarifs!A2:D), les nouvelles références sont prises en compte automatiquement.

Le piège n° 1 : oublier FAUX

Sans quatrième argument, est_trié vaut VRAI : Sheets suppose que la première colonne est triée et renvoie la valeur la plus proche inférieure ou égale à la clé. Cherchez une référence qui n’existe pas, P-150, et vous n’aurez pas d’erreur : la formule renvoie 189, le prix de P-102, sans rien signaler. Avec FAUX (ou 0), vous obtenez un #N/A honnête. Je n’utilise VRAI que pour les barèmes par tranches, comme dans l’exemple suivant.

RECHERCHEH : la même chose à l’horizontale

RECHERCHEH(clé_recherche; plage; index; [est_trié]) cherche dans la première ligne et renvoie la ligne numéro index. Elle sert surtout pour les grilles disposées en ligne, comme ce barème de remise (onglet Remises) :

ABCDE
1Quantité minimum11050100
2Remise0 %5 %10 %15 %
=RECHERCHEH(C2; Remises!$B$1:$E$2; 2; VRAI)

Pour 37 unités en C2, la formule renvoie 5 % : 10 est le plus grand seuil inférieur ou égal à 37. C’est le cas où VRAI est utile, à condition que la ligne des seuils soit triée par ordre croissant.

RECHERCHEX : la version moderne

Disponible dans Google Sheets depuis 2022, RECHERCHEX sépare la colonne où l’on cherche de celle que l’on renvoie :

RECHERCHEX(clé_recherche; plage_recherche; plage_résultats; [valeur_manquante]; [mode_correspondance]; [mode_recherche])
=RECHERCHEX(G2; Tarifs!A2:A; Tarifs!D2:D; "Référence inconnue")

Ce que cela change au quotidien :

  • Correspondance exacte par défaut (mode_correspondance = 0) : le piège du FAUX oublié disparaît.
  • Valeur de repli intégrée : plus besoin d’envelopper la formule dans SI.NON.DISP.
  • Recherche à gauche : retrouver la référence à partir de la désignation, impossible avec RECHERCHEV sans bricolage : =RECHERCHEX("Clavier sans fil"; Tarifs!B2:B; Tarifs!A2:A) renvoie P-205.
  • Plusieurs colonnes d’un coup : =RECHERCHEX(G2; Tarifs!A2:A; Tarifs!B2:D) remplit trois cellules (désignation, catégorie, prix). Les cellules à droite doivent être vides, sinon #REF!.
  • Dernière occurrence : avec mode_recherche à -1, la recherche part du bas. Pratique pour le dernier prix pratiqué dans un historique : =RECHERCHEX(G2; Historique!B2:B; Historique!C2:C; "Aucun"; 0; -1).
  • Barèmes : mode_correspondance à -1 renvoie la valeur exacte ou, à défaut, la plus proche inférieure : =RECHERCHEX(C2; Remises!B1:E1; Remises!B2:E2; "Hors grille"; -1).
  • Caractères génériques : mode_correspondance à 2 permet =RECHERCHEX("*sans fil*"; Tarifs!B2:B; Tarifs!D2:D; "Aucun"; 2).

Seule contrainte : plage_recherche et plage_résultats doivent avoir le même nombre de lignes (A2:A avec D2:D, pas D1:D).

RECHERCHEV, RECHERCHEH, RECHERCHEX ou INDEX/EQUIV ?

RECHERCHEV / RECHERCHEHRECHERCHEXINDEX + EQUIV
Correspondance par défautApproximative (piège)ExacteApproximative pour EQUIV (mettre 0)
Recherche à gaucheNonOuiOui
Colonne insérée dans la tableMauvais résultat possibleSuit la colonneSuit la colonne
Valeur si introuvableAvec SI.NON.DISPIntégréeAvec SI.NON.DISP
Tableau à double entréePeu pratiquePossible, moins lisibleIdéal
Fichiers ouverts dans un ancien ExcelOuiExcel 2021 / 365 seulementOui

Les erreurs les plus fréquentes

#N/A : la valeur n’est pas trouvée

  • Espaces invisibles : « P-205 » et « P-205 » ne sont pas égaux. Nettoyez la source avec SUPPRESPACE() ou le menu Données > Nettoyage des données.
  • Nombre contre texte : un code client 1024 saisi comme nombre d’un côté et comme texte de l’autre ne correspond pas. Uniformisez le format de la colonne, ou forcez la clé en texte avec G2&"".
  • Plage qui ne commence pas à la bonne colonne (RECHERCHEV) : si la clé est en B, la plage commence en B.
  • La valeur n’existe vraiment pas : c’est le seul cas où il faut masquer l’erreur. Préférez SI.NON.DISP, qui ne capture que #N/A, à SIERREUR, qui cacherait aussi une vraie faute de formule : =SI.NON.DISP(RECHERCHEV(G2; Tarifs!A2:D; 4; FAUX); "Référence inconnue").

#REF! : l’index dépasse la plage

RECHERCHEV(G2; A2:C; 4; FAUX) demande la 4e colonne d’une plage qui n’en compte que trois. L’index se compte dans la plage, pas depuis la colonne A de la feuille.

Le piège silencieux : une colonne insérée

Quelqu’un insère une colonne « Fournisseur » entre B et C dans l’onglet Tarifs. La plage devient A2:E, mais l’index reste 4 : toutes vos formules renvoient désormais la catégorie au lieu du prix, sans aucune erreur. Deux parades : RECHERCHEX, qui pointe directement sur la colonne des prix, ou un index calculé à partir de l’en-tête :

=RECHERCHEV(G2; Tarifs!A2:E; EQUIV("Prix HT (€)"; Tarifs!A1:E1; 0); FAUX)

INDEX + EQUIV : quand l’utiliser ?

EQUIV(clé; plage; 0) renvoie la position d’une valeur, INDEX(plage; ligne; [colonne]) renvoie la valeur située à une position. Combinées, elles cherchent dans n’importe quel sens :

=INDEX(Tarifs!A2:A; EQUIV("Clavier sans fil"; Tarifs!B2:B; 0))

N’oubliez pas le 0 d’EQUIV : sans lui, la recherche est approximative, comme avec RECHERCHEV. Je garde ce duo pour deux cas : les fichiers partagés avec des utilisateurs d’Excel 2019 ou antérieur, et les tableaux à double entrée. Avec les commerciaux en A2:A4, les mois en B1:M1 et les objectifs dans B2:M4 :

=INDEX(B2:M4; EQUIV(G1; A2:A4; 0); EQUIV(G2; B1:M1; 0))

La formule renvoie l’objectif du commercial choisi en G1 pour le mois choisi en G2.

Plusieurs critères et colonnes entières

Pour chercher sur deux critères (un client et une région), on concatène les clés de part et d’autre, avec un séparateur pour éviter les collisions. Avec un onglet Ventes où le client est en A, la région en B et le montant en E :

=ARRAYFORMULA(RECHERCHEX(G2&"|"&H2; Ventes!A2:A&"|"&Ventes!B2:B; Ventes!E2:E; "Introuvable"))

Pour remplir toute une colonne avec une seule formule plutôt que de la recopier sur des milliers de lignes, enveloppez la recherche dans ARRAYFORMULA :

=ARRAYFORMULA(SI(A2:A=""; ""; SI.NON.DISP(RECHERCHEV(A2:A; Tarifs!A2:D; 4; FAUX); "Inconnue")))

Le fonctionnement d’ARRAYFORMULA, et de MAP quand elle ne suffit pas, est détaillé dans le guide ARRAYFORMULA, MAP et MAKEARRAY.

Ma recommandation

  • Nouveau fichier : RECHERCHEX, systématiquement.
  • Fichier existant plein de RECHERCHEV : inutile de tout réécrire ; vérifiez seulement que chaque formule se termine par FAUX.
  • Tableau à double entrée ou compatibilité avec un ancien Excel : INDEX + EQUIV.
  • Plusieurs lignes à renvoyer (toutes les ventes d’un client) : ni l’une ni l’autre, qui ne renvoient que la première correspondance. Passez à FILTER ou à la fonction QUERY.

FAQ

Pourquoi ma RECHERCHEV renvoie-t-elle une mauvaise valeur sans erreur ?

Presque toujours parce que le dernier argument manque ou vaut VRAI : la recherche est alors approximative. Ajoutez FAUX. Deuxième cause : une colonne insérée qui décale l’index.

RECHERCHEV fait-elle la différence entre majuscules et minuscules ?

Non : « p-205 » trouve « P-205 ». RECHERCHEX non plus. Si la casse compte, utilisez FILTER avec EXACT().

Peut-on faire une RECHERCHEV dans un autre fichier Google Sheets ?

Oui, en plaçant IMPORTRANGE("url_du_fichier"; "Tarifs!A2:D") à la place de la plage. La première fois, Sheets demande d’autoriser l’accès entre les deux fichiers. Si la table est grosse, importez-la une seule fois dans un onglet plutôt que dans chaque formule.

RECHERCHEX existe-t-elle dans Excel ?

Oui, sous le même nom dans Excel 2021 et Microsoft 365, avec des arguments très proches. Elle n’existe pas dans Excel 2019 et les versions antérieures : un fichier exporté vers ces versions affichera des erreurs.

RECHERCHEX, INDEX/EQUIV et IMPORTRANGE sont au programme du niveau N2 « Google Sheets avancé » de la formation Google Sheets, travaillées directement sur les fichiers de votre équipe. Si vos tables de référence vivent dans plusieurs fichiers recopiés à la main, l’étape suivante est souvent de les automatiser. Pour les formules conditionnelles, voir aussi la formule SI avec plusieurs conditions.