=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.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | 40 | Bread | $2.40 | |
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
=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])
| Argument | Ce qu'il fait | Par défaut |
|---|---|---|
lookup_value | La valeur à trouver. | obligatoire |
lookup_array | La colonne (ou la ligne) où chercher. | obligatoire |
return_array | La colonne, la ligne ou le bloc d'où renvoyer le résultat. Même hauteur que lookup_array. | obligatoire |
if_not_found | Ce qu'il faut afficher quand rien ne correspond. | #N/A |
match_mode | 0 exacte, -1 exacte ou immédiatement inférieure, 1 exacte ou immédiatement supérieure, 2 caractères génériques. | 0 |
search_mode | 1 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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Product | Category | Price | Stock |
| 2 | Apple | Fruit | $1.20 | 40 |
| 3 | Pear | Fruit | $1.50 | 25 |
| 4 | Carrot | Vegetable | $0.80 | 60 |
| 5 | Bread | Bakery | $2.40 | 15 |
| 6 | Milk | Dairy | $1.10 | 30 |
| 7 | Look for | Carrot | ||
| 8 | Result | Vegetable | $0.80 | 60 |
=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.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Price | Product | |
| 2 | Apple | Fruit | $1.20 | 40 | $2.40 | Bread | |
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
=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.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Date | Customer | Amount | Customer | First | Last | |
| 2 | 2026-03-02 | Ben | 120 | Ben | 120 | 60 | |
| 3 | 2026-03-05 | Ana | 80 | ||||
| 4 | 2026-03-09 | Ben | 45 | ||||
| 5 | 2026-03-12 | Cara | 200 | ||||
| 6 | 2026-03-20 | Ben | 60 | ||||
| 7 | 2026-03-24 | Ana | 95 |
=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.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Sales from | Rate | Rep | Sales | Rate | |
| 2 | 5000 | 5% | Ana | 750 | 0% | |
| 3 | 0 | 0% | Ben | 4,200 | 3% | |
| 4 | 10000 | 8% | Cara | 5,000 | 5% | |
| 5 | 1000 | 3% | Dev | 12,500 | 8% |
=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).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Contains | Price | |
| 2 | Green tea | Drinks | $3.20 | coffee | $2.90 | |
| 3 | Iced coffee | Drinks | $2.90 | |||
| 4 | Coffee beans | Pantry | $8.50 | |||
| 5 | Black tea | Drinks | $2.70 | |||
| 6 | Orange juice | Drinks | $3.40 |
=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.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Region | Jan | Feb | Mar |
| 2 | North | 4,200 | 3,900 | 4,800 |
| 3 | South | 3,100 | 3,600 | 3,300 |
| 4 | East | 5,200 | 4,700 | 5,600 |
| 5 | West | 2,800 | 3,000 | 3,400 |
| 6 | Region | South | ||
| 7 | Month | Feb | ||
| 8 | Sales | 3,600 |
=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"
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Product | Category | Price | Stock | Look for | Price | |
| 2 | Apple | Fruit | $1.20 | 40 | Kiwi | ||
| 3 | Pear | Fruit | $1.50 | 25 | |||
| 4 | Carrot | Vegetable | $0.80 | 60 | |||
| 5 | Bread | Bakery | $2.40 | 15 | |||
| 6 | Milk | Dairy | $1.10 | 30 |
À 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
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Order from | Discount | Order | Discount | |
| 2 | $0 | 0% | $320 | ||
| 3 | $100 | 5% | |||
| 4 | $250 | 10% | |||
| 5 | $500 | 15% |
À 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!.