La fonction RECHERCHEX() est une fonction de recherche très utilisée dans Excel. Elle est une version améliorée de RECHERCHEV().
Elle permet de rechercher une valeur dans une plage, que ce soit une ligne, une colonne ou un tableau, et de retourner la ou les valeurs correspondantes dans autre plage.
Voici un exemple typique de recherche avec RECHERCHEX() : si on a une colonne avec des codes d'articles dont la description est dans la colonne suivante, on pourra retrouver une description d'article simplement en entrant son code.
RECHERCHEX() utilise cette syntaxe. Les arguments entre crochets carrés sont optionnels.
=RECHERCHEX(valeur_recherchée;plage_recherche;plage_résultats;[valeur_si_non_trouvé];[type_correspondance];[mode_recherche])
Il existe plusieurs différences entre RECHERCHEX() et RECHERCHEV(). En voici quelques-unes :
La fonction RECHERCHEX() demande au moins trois arguments :
Exemple de base :
Pour obtenir la description de l'article dont le code correspond à la valeur entrée en B8, entrez la formule =RECHERCHEX(B8;A2:A6;B2:B6)
Résultat :
Voici un exemple qui retourne plusieurs données. La plage des cellules retournées contient donc plus d'une colonne : =RECHERCHEX(B8;A2:A6;B2:C6)
Remarquez que la formule en C9 se charge de remplir les cellules C9 et D9.
Résultat :
Grâce à la fonction TRANSPOSE(), il est possible de transposer les résultats pour que les données retournées soient affichées l'une sous l'autre lorsque la fonction retourne plusieurs données.
=TRANSPOSE(RECHERCHEX(B8;A2:A6;B2:C6))
Il est possible d'entrer 3 arguments supplémentaires afin de préciser comment la recherche doit être effectuée.
Le 4e argument permet de préciser la valeur à afficher si la valeur recherchée n'est pas trouvée lors d'une recherche exacte.
Sans lui, si la valeur recherchée n'était pas trouvée, Excel afficherait #N/A.
=RECHERCHEX(B8;A2:A6;B2:B6;"Code invalide")
Par défaut, RECHERCHEX() effectue une correspondance exacte c'est-à-dire que la fonction indique que la valeur recherchée n'a pas été trouvée lorsqu'elle ne trouve pas exactement cette valeur dans la plage de recherche.
Le 5e argument permet de modifier ce comportement.
Remarquez que si vous ne souhaitez pas entrer le 4e argument, il vous suffira de faire suivre deux points-virgules d'affilée.
Exemple avec 4e et 5e arguments : =RECHERCHEX(B8;A2:A6;B2:B6;"Code invalide";-1). Ceci n'a pas de sens puisqu'avec une recherche approximative, la valeur du 4e argument ne sera jamais utilisée.
Exemple sans 4e argument et avec 5e :=RECHERCHEX(B8;A2:A6;B2:B6;;-1)
Le type de correspondance peut prendre une des valeurs suivantes :
Ici, j'ai laissé tomber l'exemple du code de produit puisqu'une recherche approximative donnerait des résultats erronés lorsque le code de produit n'est pas trouvé.
Plutôt, cet exemple utilise une recherche approximative pour trouver le rabais à appliquer selon la quantité d'articles achetés. Dans un tel contexte, il n'est pas nécessaire d'entrer la quantité exacte pour connaître le rabais.
=RECHERCHEX(C7;C2:C5;D2:D5;;-1)
Dans cet exemple, puisque la valeur 145 n'est pas trouvée, RECHERCHEX() considère la cellule dont la valeur est plus petite que la valeur recherchée, soit 100.
Ici, on recherche la note en lettre à mettre au bulletin d'une étudiante ou d'un étudiant selon son résultat sur 100.
=RECHERCHEX(D17;C4:C15;D4:D15;;1)
Dans cet exemple, puisque la valeur 83 n'est pas trouvée, RECHERCHEX() considére la cellule dont la valeur est plus grande que la valeur recherchée, soit 84.
Dans cet exemple, on recherche la description du premier article dont le code débute par B : =RECHERCHEX(B8;A2:A6;B2:B6;;2)
Ici, la formule est la même mais dans la cellule B8, on indique qu'on recherche la description du premier article dont le code se termine par 24.
Utile lorsque la valeur recherchée contient elle-même un astérisque, un point d'interrogation ou un tilde.
Il faut le faire suivre le tilde par * ? ou ~. Par exemple, avec VI~*X, RECHERCHEX() pourra retrouver un article dont le code est VI*X.
Par défaut, RECHERCHEX() effectue toujours sa recherche à partir du premier élément de la liste et il retourne la première valeur rencontrée.
Le 6e et dernier argument, le mode de recherche, permet de changer ce comportement en précisant dans quel sens la recherche doit être effectuée.
Le mode de recherche peut prendre les valeurs suivantes :
La recherche binaire est beaucoup plus rapide. La différence du temps de traitement sera évidente si vous effectuez une recherche dans une plage qui contient des centaines de cellules.
Dans cet exemple, la recherche est effectuée à partir de la dernière cellule de la plage. On voit que RECHERCHEX() trouve la dernière occurence d'un code qui débute par POT.
=RECHERCHEX(B8;A2:A6;B2:B6;;2;-1)
▼Publicité