XLOOKUP (RECHERCHEX dans un Google Sheets en français) cherche une clé dans une plage et renvoie l'élément correspondant d'une autre plage. Contrairement à VLOOKUP, elle se moque de la colonne où se trouve la clé, elle est exacte par défaut, elle peut chercher de bas en haut, et elle vous laisse choisir ce qu'il faut afficher quand rien n'est trouvé. Pour un nouveau classeur, c'est la fonction de recherche à utiliser en premier.
Syntaxe
=XLOOKUP(search_key, lookup_range, result_range, [missing_value], [match_mode], [search_mode])
search_key: La valeur à rechercher.lookup_range: La ligne ou la colonne unique dans laquelle chercher.result_range: La ligne ou la colonne dont on renvoie une valeur. Elle doit avoir la même taille quelookup_range.missing_value[Facultatif] : Ce qu'il faut renvoyer quand il n'y a pas de correspondance. Si omis,XLOOKUPrenvoie#N/A.match_mode[Facultatif] :0correspondance exacte (par défaut)-1correspondance exacte, ou la valeur immédiatement inférieure1correspondance exacte, ou la valeur immédiatement supérieure2correspondance avec caractères génériques (*et?)
search_mode[Facultatif] :1recherche du premier au dernier (par défaut)-1recherche du dernier au premier2recherche binaire, données triées par ordre croissant-2recherche binaire, données triées par ordre décroissant
Exemple rapide
Avec les noms de produits en A2:A6 et les prix en C2:C6 :
=XLOOKUP("Agrafeuse", A2:A6, C2:C6, "Introuvable")
Renvoie le prix de l'agrafeuse, ou Introuvable si le produit n'est pas dans la liste. Comme la plage de recherche et la plage de résultat sont séparées, la colonne des prix peut se trouver n'importe où : à gauche des noms, dans une autre feuille ou dans un autre fichier via IMPORTRANGE.
Chercher à gauche, sans compter les colonnes
Avec VLOOKUP, il faut compter les colonnes et la clé doit être à gauche. Avec XLOOKUP, vous désignez directement les colonnes :
=XLOOKUP(E2, B2:B100, A2:A100)
Cette formule cherche la valeur de E2 dans la colonne B et renvoie l'élément correspondant de la colonne A. Insérer ou supprimer des colonnes dans le tableau ne casse pas la formule, car aucun numéro de colonne n'est écrit en dur.
Les modes de correspondance
Correspondance approximative sans tri
La correspondance approximative de VLOOKUP exige des données triées. XLOOKUP avec match_mode à -1 renvoie la valeur immédiatement inférieure sans exiger de tri. Pour un barème d'imposition ou de remises avec les seuils en F2:F6 et les taux en G2:G6 :
=XLOOKUP(B2, F2:F6, G2:G6, , -1)
Si le montant est 8 500 et que les seuils sont 0, 5 000 et 10 000, la formule renvoie le taux de la tranche à 5 000. Remarquez le quatrième argument laissé vide, qui saute missing_value.
Caractères génériques
Utilisez match_mode à 2 pour une correspondance partielle sur du texte :
=XLOOKUP("*" & E2 & "*", A2:A100, B2:B100, "Aucune correspondance", 2)
Cette formule renvoie la première ligne dont le nom contient le texte de E2.
Chercher depuis le bas : la dernière entrée
Quand une clé apparaît plusieurs fois, XLOOKUP renvoie par défaut la première correspondance. Passez search_mode à -1 pour partir du bas et obtenir l'entrée la plus récente d'un journal :
=XLOOKUP(E2, A2:A1000, C2:C1000, "Aucune", 0, -1)
C'est une façon courante d'obtenir la dernière commande d'un client ou le dernier prix enregistré.
Renvoyer plusieurs colonnes d'un coup
Si la plage de résultat compte plusieurs colonnes, XLOOKUP renvoie toute la portion de ligne correspondante et la déverse sur plusieurs cellules :
=XLOOKUP(E2, A2:A100, B2:D100)
Cette formule renvoie les valeurs de B, C et D de la ligne correspondante, en une seule formule.
Deux critères
Pour faire correspondre deux colonnes, par exemple le nom et le mois, combinez-les dans la recherche :
=XLOOKUP(E2 & F2, ARRAYFORMULA(A2:A100 & B2:B100), C2:C100, "Introuvable")
Erreurs courantes
#N/A. Pas de correspondance, et aucunmissing_valuefourni. Vérifiez les espaces superflus (utilisezTRIM) et les différences de type texte/nombre, comme"1001"face à1001. Ou indiquez unmissing_value.#VALUE!.lookup_rangeetresult_rangen'ont pas la même taille, ou vous avez passé une plage de recherche à deux dimensions. Chacune doit être une seule ligne ou une seule colonne, de même longueur.- Mauvaise ligne renvoyée. Clés en double :
XLOOKUPrenvoie la première correspondance, sauf si vous passezsearch_modeà-1.
XLOOKUP, VLOOKUP ou INDEX/MATCH ?
- Direction :
XLOOKUPetINDEX/MATCHcherchent à gauche comme à droite.VLOOKUPne cherche que vers la droite. - Correspondance par défaut :
XLOOKUPetINDEX/MATCHsont exacts.VLOOKUPest approximatif, sauf si vous passezFALSE. - Introuvable :
XLOOKUPa unmissing_valueintégré. Les autres nécessitentIFERROR. - Changements de colonnes :
XLOOKUPréférence directement les colonnes, donc l'insertion de colonnes est sans danger. - Compatibilité : si un fichier doit aussi être ouvert dans d'anciens outils,
VLOOKUPetINDEX/MATCHsont les plus largement pris en charge.
Pour une comparaison plus détaillée, lisez XLOOKUP vs INDEX-MATCH dans Google Sheets en 2026.
Exemple vidéo
Questions fréquentes
XLOOKUP tient-elle compte de la casse ? Non. Pour une recherche sensible à la casse, combinez INDEX, MATCH et EXACT.
Peut-on renvoyer une ligne ou un tableau entier ? Oui, il suffit que result_range compte plusieurs colonnes. Pour obtenir toutes les correspondances, et pas seulement la première, utilisez FILTER.
XLOOKUP fonctionne-t-elle avec ARRAYFORMULA ? Oui. Écrivez ARRAYFORMULA(XLOOKUP(E2:E, ...)) pour remplir une colonne, même si une XLOOKUP qui se déverse sur une plage n'en a souvent pas besoin.
Fonctions associées
VLOOKUP: La recherche verticale classique queXLOOKUPremplace.HLOOKUP: Recherche horizontale sur la ligne du haut.INDEX: Renvoie le contenu d'une cellule à partir d'un décalage de ligne et de colonne.MATCH: Renvoie la position relative d'un élément dans une plage.FILTER: Renvoie toutes les lignes qui remplissent une condition, pas seulement la première.