Menu

RECHERCHEX Excel : formule, exemples et modes (XLOOKUP)

=RECHERCHEX(F2;A2:A6;C2:C6) cherche F2 dans A2:A6 et renvoie la valeur de la même ligne de C2:C6. Texte si non trouvé, plusieurs colonnes à la fois, recherche vers la gauche, dernière correspondance, correspondance approximative et caractères génériques.

Chaque feuille de cette page est interactive : modifiez un nombre ou une formule et elle se recalcule.

=RECHERCHEX(F2;A2:A6;C2:C6) cherche la valeur de F2 dans A2:A6 et renvoie la valeur de la même ligne de C2:C6. Elle cherche une correspondance exacte par défaut, la colonne de recherche peut être n'importe où, et elle demande Excel 2021 ou Microsoft 365 (dans Excel 2019 et versions antérieures, utilisez INDEX et EQUIV). RECHERCHEX s'appelle XLOOKUP dans un Excel anglais, le nom que montre le tableau : =XLOOKUP(F2,A2:A6,C2:C6). Vous pouvez aussi y taper les formules en français, avec des points-virgules. Tapez un autre produit en F2.

Prix d'un produit
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Bread$2.40
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =RECHERCHEX(F2;A2:A6;C2:C6)

Cliquez sur G2 : la plage de recherche et la plage de résultat sont encadrées séparément. Remplacez C2:C6 par B2:B6 et G2 renvoie la catégorie. Il n'y a pas de numéro de colonne à compter, donc insérer une colonne entre A et C ne casse pas la formule : Excel déplace les deux plages.

Syntaxe de RECHERCHEX

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
ArgumentCe qu'il faitPar défaut
lookup_valueLa valeur à trouver.obligatoire
lookup_arrayLa colonne (ou la ligne) où chercher.obligatoire
return_arrayLa colonne, la ligne ou le bloc d'où renvoyer le résultat. Même hauteur que lookup_array.obligatoire
if_not_foundCe qu'il faut afficher quand rien ne correspond.#N/A
match_mode0 exacte, -1 exacte ou immédiatement inférieure, 1 exacte ou immédiatement supérieure, 2 caractères génériques.0
search_mode1 du premier au dernier, -1 du dernier au premier, 2 et -2 recherche dichotomique sur des données triées.1

Seuls les trois premiers sont obligatoires. Pour sauter un argument facultatif et en définir un suivant, laissez-le vide entre deux séparateurs : =RECHERCHEX(F2;A2:A6;C2:C6;;0;-1) définit search_mode et laisse if_not_found à sa valeur par défaut.

Renvoyer plusieurs colonnes à la fois

Donnez à RECHERCHEX une plage de résultat large de plusieurs colonnes et toute la ligne revient. Le résultat se propage dans les cellules à côté de la formule.

Tous les champs d'un produit
B8
ABCD
1ProductCategoryPriceStock
2AppleFruit$1.2040
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
7Look forCarrot
8ResultVegetable$0.8060
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =RECHERCHEX(B7;A2:A6;B2:D6)

Une seule formule en B8 remplit B8:D8 avec Vegetable, $0.80 et 60. Tapez quelque chose en C8 et B8 affiche #EPARS! (en anglais #SPILL!, le nom qu'affiche le tableau), parce que le résultat n'a pas de place ; supprimez-le et le résultat revient. Pour renvoyer les colonnes dans un autre ordre, entourez la plage de résultat de CHOISIRCOLS : =RECHERCHEX(B7;A2:A6;CHOISIRCOLS(B2:D6;3;1)) donne Stock, puis Category.

RECHERCHEX vers la gauche, et un message quand rien ne correspond

La colonne de recherche n'a pas besoin d'être la première. Ici, RECHERCHEX cherche les prix dans la colonne C et renvoie le nom du produit de la colonne A, ce que RECHERCHEV ne sait pas faire. Le quatrième argument indique quoi afficher quand aucun produit n'a ce prix.

Quel produit coûte ce prix ?
G2
ABCDEFG
1ProductCategoryPriceStockPriceProduct
2AppleFruit$1.2040$2.40Bread
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =RECHERCHEX(F2;C2:C6;A2:A6;"No product")

$2.40 renvoie Bread. Passez F2 à 3 et G2 affiche "No product" au lieu de #N/A. "" comme quatrième argument affiche une cellule qui paraît vide. if_not_found ne couvre que le cas "non trouvé" : une plage de résultat de mauvaise hauteur donne toujours #VALEUR! (#VALUE!), et c'est ce que vous voulez voir.

Trouver la dernière correspondance

RECHERCHEX renvoie la première correspondance en partant du haut. Mettez search_mode, le sixième argument, à -1 et elle cherche depuis le bas : elle renvoie donc la dernière correspondance, la commande la plus récente, le dernier prix, le dernier statut.

Première et dernière commande d'un client
G2
ABCDEFG
1DateCustomerAmountCustomerFirstLast
22026-03-02Ben120Ben12060
32026-03-05Ana80
42026-03-09Ben45
52026-03-12Cara200
62026-03-20Ben60
72026-03-24Ana95
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =RECHERCHEX(E2;B2:B7;C2:C7;;0;-1)

La première commande de Ben est 120 et sa dernière 60. Passez E2 à Ana : 80 et 95. Cela suppose que les lignes soient dans l'ordre des dates. Sinon, cherchez plutôt la date la plus récente du client : =RECHERCHEX(1;(B2:B7=E2)*(A2:A7=MAX.SI.ENS(A2:A7;B2:B7;E2));C2:C7).

Correspondance approximative : valeur immédiatement inférieure ou supérieure

L'argument match_mode -1 renvoie une correspondance exacte ou, à défaut, la valeur immédiatement inférieure. C'est la règle des tranches : un palier de commission, une tranche d'impôt, une note. Contrairement à RECHERCHEV avec VRAI, la table n'a pas besoin d'être triée. Les tranches ci-dessous sont volontairement dans le désordre.

Taux de commission selon les ventes
F2
ABCDEF
1Sales fromRateRepSalesRate
250005%Ana7500%
300%Ben4,2003%
4100008%Cara5,0005%
510003%Dev12,5008%
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =RECHERCHEX(E2;$A$2:$A$5;$B$2:$B$5;;-1)

Les 4 200 de Ben tombent entre 1 000 et 5 000 : il obtient les 3 % de la tranche 1 000. Les 5 000 de Cara sont une correspondance exacte, 5 %. L'argument match_mode 1 fonctionne dans l'autre sens, exacte ou immédiatement supérieure, ce qui répond à "la plus petite boîte qui convient" ou "le prochain créneau de livraison" : =XLOOKUP(18,{5;12;25;50},{"S";"M";"L";"XL"},,1) (forme anglaise) renvoie L.

RECHERCHEX avec des caractères génériques

L'argument match_mode 2 fait de * (n'importe quels caractères) et de ? (un caractère) des caractères génériques. Sans lui, RECHERCHEX cherche les caractères eux-mêmes, à l'inverse de RECHERCHEV (dont la correspondance exacte accepte les caractères génériques) ; c'est la raison habituelle pour laquelle une RECHERCHEX avec caractère générique renvoie #N/A ou son texte if_not_found :

=XLOOKUP("*coffee*",A2:A6,C2:C6,"None")      None: no product is named *coffee*
=XLOOKUP("*coffee*",A2:A6,C2:C6,"None",2)    2.9, the price of Iced coffee

La première renvoie None, car aucun produit ne s'appelle littéralement coffee ; la seconde renvoie 2,9, le prix de Iced coffee. Dans un Excel français : =RECHERCHEX("*coffee*";A2:A6;C2:C6;"None";2).

Premier produit dont le nom contient le texte
F2
ABCDEF
1ProductCategoryPriceContainsPrice
2Green teaDrinks$3.20coffee$2.90
3Iced coffeeDrinks$2.90
4Coffee beansPantry$8.50
5Black teaDrinks$2.70
6Orange juiceDrinks$3.40
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =RECHERCHEX("*"&E2&"*";A2:A6;C2:C6;"None";2)

"coffee" trouve d'abord Iced coffee, $2.90. Ajoutez -1 comme sixième argument et elle trouve Coffee beans, $8.50. Comme toute recherche Excel, la correspondance ignore la casse. Pour trouver un vrai astérisque ou point d'interrogation en mode 2, faites-le précéder d'un tilde : "~*".

RECHERCHEX à double entrée

Une RECHERCHEX qui renvoie une ligne entière peut servir de plage de résultat à une seconde RECHERCHEX. L'intérieure choisit la ligne selon la région, l'extérieure choisit dans cette ligne la colonne du mois.

Ventes par région et par mois
B8
ABCD
1RegionJanFebMar
2North4,2003,9004,800
3South3,1003,6003,300
4East5,2004,7005,600
5West2,8003,0003,400
6RegionSouth
7MonthFeb
8Sales3,600
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =RECHERCHEX(B7;B1:D1;RECHERCHEX(B6;A2:A5;B2:D5))

RECHERCHEX(B6;A2:A5;B2:D5) renvoie la ligne de South, 3100, 3600 et 3300. La RECHERCHEX extérieure trouve Feb dans B1:D1 et prend la valeur correspondante dans cette ligne : 3,600. Choisissez une autre région et un autre mois en B6 et B7. La version INDEX et EQUIV de la même recherche se trouve sur la page INDEX et EQUIV.

RECHERCHEX dans les anciennes versions d'Excel et Google Sheets

RECHERCHEX existe dans Excel 2021, Excel 2024, Microsoft 365, Excel pour le web et les applications mobiles. Si vous ouvrez un fichier qui l'utilise dans Excel 2019 ou une version antérieure, les formules affichent #NOM? (en anglais #NAME?) dès qu'elles sont recalculées. Quand un fichier doit fonctionner partout, écrivez la recherche avec INDEX et EQUIV, que toutes les versions comprennent :

=XLOOKUP(F2, A2:A6, C2:C6, "Not found")
=IFNA(INDEX(C2:C6, MATCH(F2, A2:A6, 0)), "Not found")

Dans un Excel français : =SI.NON.DISP(INDEX(C2:C6;EQUIV(F2;A2:A6;0));"Not found"). Google Sheets a XLOOKUP depuis 2022, avec les mêmes arguments. Pour comparer les différences côte à côte, voir RECHERCHEV ou RECHERCHEX. Pour faire correspondre deux colonnes à la fois (produit et taille, nom et date), le modèle =RECHERCHEX(1;(B2:B6=E2)*(C2:C6=F2);D2:D6) est expliqué sur la page recherche avec plusieurs critères.

Exercice : un prix, ou "Not found"

Liste de prix
G2
ABCDEFG
1ProductCategoryPriceStockLook forPrice
2AppleFruit$1.2040Kiwi
3PearFruit$1.5025
4CarrotVegetable$0.8060
5BreadBakery$2.4015
6MilkDairy$1.1030
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : En G2, renvoyez le prix du produit de F2, ou le texte Not found quand il n'est pas dans la liste.

Exercice : remise selon le montant de la commande

Paliers de remise
E2
ABCDE
1Order fromDiscountOrderDiscount
2$00%$320
3$1005%
4$25010%
5$50015%
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : Chaque remise s'applique à partir de son montant de commande. En E2, utilisez RECHERCHEX (XLOOKUP) pour renvoyer la remise correspondant au montant de commande en D2.

Questions fréquentes

Comment utiliser RECHERCHEX dans Excel ?

Donnez-lui trois arguments : ce qu'il faut trouver, la colonne où chercher et la colonne à renvoyer. =RECHERCHEX("Pear";A2:A6;C2:C6) trouve Pear dans A2:A6 et renvoie la valeur de la même ligne de C2:C6. Elle cherche une correspondance exacte, sauf indication contraire.

Quelles versions d'Excel ont RECHERCHEX ?

Excel 2021, Excel 2024, Microsoft 365 et Excel pour le web. Dans Excel 2019 et versions antérieures, la formule affiche #NOM? ; utilisez-y =INDEX(C2:C6;EQUIV(F2;A2:A6;0)). Google Sheets a aussi XLOOKUP.

Comment faire renvoyer à RECHERCHEX du vide ou un texte au lieu de #N/A ?

Utilisez le quatrième argument, if_not_found : =RECHERCHEX(F2;A2:A6;C2:C6;"Not found"), ou "" pour une cellule qui paraît vide. Il ne remplace que le cas non trouvé ; les autres erreurs restent visibles.

Comment trouver la dernière correspondance avec RECHERCHEX ?

Mettez le sixième argument, search_mode, à -1 pour chercher de bas en haut : =RECHERCHEX("Ben";B2:B7;C2:C7;;0;-1) renvoie le dernier montant de Ben au lieu du premier.

RECHERCHEX peut-elle renvoyer plusieurs colonnes ?

Oui. Donnez-lui une plage de résultat large de plusieurs colonnes, comme =RECHERCHEX(F2;A2:A6;B2:D6), et le résultat se propage dans les cellules voisines. Ces cellules doivent être vides, sinon Excel affiche #EPARS!.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER