Vous souhaitez récupérer les données d’un tableau source vers un tableau cible ? La référence ne se trouve pas tout à gauche ?
Parfois lorsque l’on veut récupérer une donnée d’un tableau les RechercheV et RechercheH ne sont pas suffisants. La RechercheX, complémentaire, permet des recherches plus poussées, toujours aussi facilement.
Définition de la fonction RECHERCHEX (XLOOKUP)
La fonction RECHERCHEX (XLOOKUP en anglais), (accessible sur Microsoft 365 et Excel 2021 et plus) permet de rapatrier des données d’un tableau source à un tableau cible :
- quelque soit la place de la référence à rechercher : elle n’a pas besoin d’être tout à gauche.
- de plusieurs colonnes contigües.
- en proposant une alternative si la valeur n’est pas trouvée
- et bien d’autres options
La fonction se présente ainsi :
=RECHERCHEX(valeur_recherchée ; tableau_recherche ; tableau_renvoyé ; [si_non_trouvé] ; [mode_correspondance] ; [mode_recherche])
Valeur recherchée
Valeur (dans le tableau cible) dont vous souhaitez trouver la correspondance.
Tableau de recherche
Colonne (dans le tableau source) contenant la donnée recherchée.
A noter : La table source peut être n’importe où dans le tableau et pas forcément à gauche des données à rapatrier.
Tableau renvoyé
Colonne contenant les données à rapatrier. Il est possible de récupérer les données de plusieurs colonnes contigües.
Si non trouvé
Valeur facultative. Si la valeur recherchée ne se trouve pas dans le tableau de recherche, vous pouvez afficher une valeur, un mot encadré par des « » (ex : « Non OK ») voire même une fonction : plus besoin d’utiliser une fonction type SIERREUR !
Mode correspondance
Valeur facultative. Choix de la correspondance de la valeur recherchée :
- Correspondance exacte
- Correspondance exacte ou élément inférieur suivant
- Correspondance extacte ou élement supérieur suivant
- Correspondance de caractère générique
Mode recherche
Valeur facultative. Cet argument permet de choisir un mode de recherche inverse ou autre :
- Recherche du premier au dernier
- Recherche du dernier au premier
- Recherche binaire (tri croissant)
- Recherche binaire (tri décroissant)
Mise en application
A partir du tableau suivant (tableau source), nous allons rapatrier des données dans un autre tableau.
Recherche d’une valeur
Dans le tableau ci-dessous, nous souhaitons rapatrier la référence des articles.
Pour la 1ère ligne (ligne 11), avec la fonction RECHERCHEX, nous cherchons « Article 6 » (A11, du tableau cible); dans la colonne où il se trouve dans le tableau de référence (G1:G7, du tableau source) pour rapatrier la référence (A1:A7, du tableau source). Si la valeur recherchée n’est pas trouvée, alors le résultat affiche « Pas dans le catalogue ».
Nous obtenons la formule
=RECHERCHEX($A11;$G$1:$G$7;$A$1:$A$7; »Pas dans catalogue »)
Les symboles $ permettent de figer les colonnes et/ou lignes. Cela permet de dupliquer la formule dans différentes cellules.
Recherche de plusieurs valeurs
Désormais nous souhaitons rapatrier les données correspondant aux jours de la semaine.
Pour ce faire, pour la 1ère ligne (ligne 11), nous cherchons « Article 6 » (A11, du tableau cible); dans la colonne où il se trouve dans le tableau de référence (G1:G7, du tableau source) pour rapatrier les données des jours de la semaine (B1:F7, du tableau source). Si la valeur recherchée n’est pas trouvée, alors le résultat affiche rien (« »).
Nous obtenons la formule
=RECHERCHEX($A11;$G$1:$G$7;$B$1:$F$7; » »)
A noter : la formule est saisie dans la première colonne et les résultats se propagent dans les autres colonnes. Ces dernières doivent être vides sinon cela bloque la propagation.