Un petit topo sur cette famille de fonctions dont l'objectif est de trouver une valeur en fonction d'une autre valeur (exemple : Trouver le nom de l'employé ayant le matricule 007 ?).
La fonction RECHERCHE (fonction antédiluvienne 😁)
Cette fonction utilise 2 modes de fonctionnement / 2 syntaxes.
Mode vectorielle
On travaille avec 2 vecteurs, c'est à dire 2 plages d'une seule colonne ou d'une seule ligne.
Syntaxe
= RECHERCHE( valeur_cherchée ; vecteur_recherche ; [vecteur_résultat] )
Arguments
- valeur_cherchée : Ce que l'on cherche dans la plage "vecteur_recherche".
- Valeurs/clés (un matricule par exemple comme 007) permettant d'identifier la valeur à retourner (un nom par exemple comme Bond).
- Pour une plage ou une matrice de plusieurs valeurs, une validation matricielle (CTRL+MAJ+Entrer) sur les anciennes versions d'Excel est nécessaire.
- vecteur_recherche : La plage d'une colonne ou d'une ligne, triée en ordre croissant (-1, 0, 1, 2, ..., A-Z, FALSE, TRUE) où l'on va chercher la/les valeurs de "valeur_cherchée" !
- vecteur_résultat : (facultatif ! ????) Une plage d'une colonne ou d'une ligne ayant le même nombre de cellules que la plage "vecteur_recherche".
Résultats
Une matrice de la même taille que celle de "valeur_cherchée" contenant les valeurs de "vecteur_résultat" aux mêmes positions que les 1ères correspondances entre "valeur_cherchée" et "vecteur_résultat".
Exemple : Si une valeur de la plage "valeur_cherchée" est en 3ème position dans la plage "valeur_cherchée" alors la fonction renverra la 3ème valeur de la plage "vecteur_résultat".
Si "valeur_cherchée" n'est pas présent dans la plage "vecteur_recherche", la valeur correspondante à la valeur la plus proche inférieure de "vecteur_recherche" sera utilisée.
Si aucune valeur ne convient on obtiendra le résultat "#N/A".
Exemples
Renvoi de la valeur exacte
Recherches de différentes valeurs.

Remarques :
- Recherche de la valeur pour la référence a2 :
- Insensibilité à la casse (différence MAJUSCULE (CAPITALE) / minuscule.
- Renvoi de la dernière valeur solution.
- Recherche de la référence pour la valeur 4 :
- Inversion du sens de la recherche.
- Recherche de la référence pour la date du 22/02/2025 :
- La colonne Date n'étant pas triée, on obtient un résultat faux.
- Recherche de la date pour la valeur 6 :
- On récupère la valeur inférieure la plus proche (4) correspondant ainsi à A2.
- Recherche de la date pour la référence 6 dans un vecteur horizontal :
- Les plages vecteurs peuvent ne pas être dans le même sens.
Renvoi d'une valeur proche
Recherche du taux de réduction en fonction d'une quantité dans un barème constitué d'intervalles de valeurs.

Principales limites et contraintes
- La plage "vecteur_recherche" doit être triée en ordre croissant.
- Pas de possibilité d'imposer une recherche exacte.
- Pas de contrôle sur la taille des plages "vecteur_recherche" et "vecteur_résultat", plages pouvant ainsi être de taille différente.
- Limité à une taille de chaîne maximale de 255 caractères.
Mode matricielle
On travaille avec une matrice, c'est à dire une plage ayant plusieurs colonnes et plusieurs lignes.
Syntaxe
= RECHERCHE( valeur_cherchée ; matrice )
Arguments
- valeur_cherchée : Ce que l'on cherche dans la 1ère colonne ou ligne de la plage "matrice".
- Le choix entre colonne et ligne dépend du rapport entre le nombre de lignes et le nombre de colonnes ! 🤪
- Pour une plage ou une matrice de plusieurs valeurs, une validation matricielle (CTRL+MAJ+Entrer) sur les anciennes versions d'Excel est nécessaire.
- matrice : La plage dont :
- La 1ère colonne ou ligne contient la valeur cherchée "valeur_cherchée". Celle-ci doit être triée en ordre croissant (-1, 0, 1, 2, ..., A-Z, FALSE, TRUE).
- La dernière colonne ou ligne doit contenir la valeur à renvoyer !
Résultats
Une matrice de la même taille que celle de "valeur_cherchée" contenant les valeurs de la dernière colonne/ligne de la plage "matrice" aux mêmes positions que les 1ères correspondances entre "valeur_cherché" et la 1ère colonne/ligne de la plage "matrice".
Si "valeur_cherchée" n'est pas présent dans la première colonne/ligne de la plage "matrice", la valeur correspondante à la valeur la plus proche inférieure sera utilisée.
Si aucune valeur ne convient on obtiendra le résultat "#N/A".
Exemples
Renvoi de la valeur exacte
Recherches de différentes valeurs.

Remarques :
- Recherche du Total pour le mois de Mars (Valeur 3) :
- La matrice (plage A1:F4) étant plus large que haute (6 colonnes sur 4 lignes), le recherche se fait en horizontal sur la 1ère ligne !
- Recherche du Total pour le produit B :
- Même matrice (plage A1:F4) donc B n'est pas trouvé dans la 1ère ligne.
- Même recherche du Total pour le produit B :
- Ici on a augmenté le nombre de lignes de la matrice (plage A1:F6) en sélectionnant des lignes vides.
La matrice ayant au moins le même nombre de lignes que de colonnes, la recherche bascule en verticale et renvoie le résultat.
- Ici on a augmenté le nombre de lignes de la matrice (plage A1:F6) en sélectionnant des lignes vides.
Renvoi d'une valeur proche
Recherche du taux de réduction en fonction d'une quantité dans un barème constitué d'intervalles de valeurs.

Principales limites et contraintes
- La 1ère colonne/ligne de la plage "matrice" doit être triée en ordre croissant.
- Pas de possibilité d'imposer une recherche exacte.
- Pas de possibilité d'imposer le sens de la recherche, dépendant des dimensions de la plage "matrice" ce qui génère parfois des impossibilités d'utilisations (rappel : renvoi la dernière ligne/colonne).
- Limité à une taille de chaîne maximale de 255 caractères.
Les fonctions RECHERCHEV / RECHERCHEH(obsolètes)
Les fonctions RECHERCHEV (Vertical) et RECHERCHEH (Horizontal) ont la même logique de fonctionnement, l'une effectuant sa recherche dans la 1ère colonne d'une plage (RECHERCHEV), l'autre dans la 1ère ligne (RECHERCHEH).
Syntaxes
= RECHERCHEV( valeur_cherchée ; table_matrice ; no_index_col ; [valeur_proche] )
= RECHERCHEH( valeur_cherchée ; table_matrice ; no_index_lig ; [valeur_proche] )
Arguments
- valeur_cherchée : Ce que l'on cherche dans la 1ère colonne (RECHERCHEV) ou ligne (RECHERCHEV) de la plage "table_matrice".
- Pour une plage ou une matrice de plusieurs valeurs, une validation matricielle (CTRL+MAJ+Entrer) sur les anciennes versions d'Excel est nécessaire.
- table_matrice : La plage dont
- La 1ère colonne / ligne contient la valeur cherchée "valeur_cherchée" (le matricule 007 par exemple).
- Une autre colonne / ligne contient la valeur à retourner (le nom de 007).
- no_index_col/no_index_lig : la position de la ou des colonnes / lignes dans la plage "table_matrice".
- S'il y a plusieurs valeurs dans "valeur_cherchée", seule la 1ère valeur de "no_index_col/no_index_lig" sera prise en compte.
- Si supérieur au nombre de lignes / colonnes de la plage "table_matrice", on obtient l'erreur "#REF!".
- Si inférieur ou égale à 0, on obtient l'erreur "#VALEUR!".
- [valeur_proche] : (facultatif)
- Si valeur FAUX ou 0 : Recherche exacte. Aberration ici car ce mode d'utilisation de loin la plus courante mais n'est pas la valeur par défaut !
- Si omis ou VRAI ou toutes valeurs différentes de 0 (zéro) : Recherche approchée.
Résultats
Matrice de la même taille que celle de "valeur_cherchée" contenant les valeurs de la colonne/ligne de "table_matrice" désignée par "no_index_col/no_index_lig" ayant la même position que les 1ères correspondances entre les valeurs de "valeur_cherchée" et les valeurs de la 1ère colonne/ligne de "table_matrice".
Exemple avec RECHERCHEV : Si une valeur de la plage "valeur_cherchée" est en 3ème position dans la 1ère colonne de la plage "table_matrice" alors la fonction renverra la 3ème valeur de la colonne de la plage "table_matrice" désignée par "no_index_col".
Si la valeur n'est pas trouvée on obtient la valeur "#N/A".
Exemples
RECHERCHEV
Renvoi de la valeur exacte
Recherches de différentes valeurs.

Remarques :
- Recherche de la valeur pour la référence A2 :
- La plage "table_matrice" commence en colonne A (Ref) vu que la "valeur_cherchée" est à trouver dans cette colonne.
- On récupère la valeur en colonne Val (colonne C) étant la 3ème colonne de la plage "table_matrice".
- Recherche de la valeur pour la date du 22/02/2025 :
- La plage "table_matrice" commence en colonne B (Date) vu que la "valeur_cherchée" est à trouver dans cette colonne.
- On récupère la valeur en colonne Val (colonne C) étant la 2ème colonne de la plage "table_matrice".
- Recherche de la référence pour la date du 22/02/2025 :
- Il est impossible de récupérer une valeur d'une colonne (ici Ref) située à gauche de la colonne de recherche (rappel : la recherche de la valeur "valeur_cherchée" se fait dans la 1ère colonne de la plage "table_matrice").
Renvoi d'une valeur proche
Recherche du taux de réduction en fonction d'une quantité dans un barème constitué d'intervalles de valeurs.

Remarque :
- La 1ère colonne de la plage "table_matrice" doit être triée en ordre croissant.
Renvoi de plusieurs valeurs
Utilisation de matrices de plusieurs valeurs pour les arguments "valeur_cherchée" et "no_index_col" générant plusieurs résultats.

- Matrice verticale pour "valeur_cherchée".
- Matrice horizontale pour "valeur_cherchée".
- Matrice verticale pour "no_index_col".
- Matrice horizontale pour "no_index_col".
RECHERCHEH
Même principe que RECHERCHEV en inversant lignes / colonnes.

- Recherche du Total pour le mois de Mars (Valeur 3) :
- La recherche se fait dans la 1ère ligne de la plage "table_matrice".
- On récupère la valeur en ligne Total c'est à dire la 5ème ligne de la plage "table_matrice".
Principales limites et contraintes
- La recherche de "valeur_cherchée" ne peut se faire que sur la 1ère colonne/ligne de la plage "table_matrice".
- On ne peut récupérer qu'une valeur dans la plage "table_matrice" donc forcément à gauche/en dessous de la 1ère colonne/ligne de la plage "table_matrice" (colonne de recherche de "valeur_cherchée").
- Limité à une taille de chaîne maximale de 255 caractères.
Le duo de fonctions INDEX - EQUIV (EQUIVX)
L'union fait la force ! Avec ce duo, on se libère enfin de cette recherche en 1ère colonne/ligne.
Principe d'utilisation de ces fonctions dans le cas d'une recherche de valeur
Elles vont jouer un rôle symétrique / inverse.
- EQUIV ou EQUIVX : D'une Valeur elle donne une Position.
- INDEX : D'une Position elle donne une Valeur.

Syntaxes
= EQUIV( valeur_cherchée ; matrice_recherche ; [type] )
= EQUIVX( Valeur_cherchée ; Tableau_recherche ; [Mode_correspondance] ; [Mode_recherche] )
= INDEX( matrice ; no_lig ; [no_col] )
= INDEX( réf ; no_lig ; [no_col] ; [no_zone] )
- Pour les fonctions EQUIV et EQUIVX, voir Fonction EQUIV ou fonction EQUIVX ?
- Pour la fonction INDEX, voir Des formes et syntaxes peu connues de la fonction INDEX
Exemples

- Recherche de la 1ère référence en date du 21/02/2025.
- Remarque que la colonne que Ref est à gauche de la colonne Date (configuration incompatible pour l'utilisation d'une fonction RECHERCHEV).
- Recherche de Val à partir de plusieurs critères (Ref et Date).
- Recherche de Val à partir d'une portion de valeur (dernier caractère).
- Recherche de Val à partir d'une portion de valeur (dernier caractère).
- Utilisation de EQUIVX pour avoir le choix dans le sens de la recherche.
- Recherche de Val basée si une limite (avant l'année 2025).
- Le critère est étonnamment utilisé dans l'argument "Tableau_recherche" de la fonction EQUIV et non dans "Valeur_cherchée".
- Recherche de Val à partir d'un critère en tenant compte de la casse (différence CAPITALE-MAJUSCULE/minuscule).
- Recherche de Ref basée sur une valeur proche.
- La colonne Val étant trié en ordre croissant.
Principales limites et contraintes
- Limité à une taille de chaîne maximale de 255 caractères pour EQUIV (EQUIVX non concernée).
La fonction RECHERCHEX
Même logique que le duo de fonctions INDEX - EQUIVX mais avec des options en plus en évitant une imbrication de fonction.
Syntaxe
= RECHERCHEX( valeur_cherchée ; tableau_recherche ; tableau_renvoyé ; [si_non_trouvé] ; [mode_correspondance] ; [mode_recherche] )
Arguments
- valeur_cherchée : Ce que l'on cherche dans la plage "tableau_recherche" (une valeur ou une matrice de valeurs).
- tableau_recherche : Plage (vecteur) de recherche pour "valeur_cherchée".
- Plage d'une ligne ou d'une colonne donnant ainsi le sens de la recherche.
- tableau_renvoyé : Plage contenant le/les résultats renvoyé(s) par fonction. La position de "valeur_cherchée" dans la plage "tableau_recherche" servira pour désigner la valeur de la plage "tableau_renvoyé" à renvoyer comme résultat de la fonction.
- "tableau_recherche" et "tableau_renvoyé" doivent avoir le même nombre de lignes en cas de recherche "verticale" et le même nombre de colonnes en cas de recherche "horizontale".
- [si_non_trouvé] : Résultat si aucun résultat n'est trouvé. Si omis, on obtiendra "#N/A" dans ce cas.
- [mode_correspondance] :
- 0 : Correspondance exacte (valeur par défaut).
- -1 : Valeur proche, si aucune correspondance n'est trouvée, on retourne l'élément suivant plus petit.
- 1 : Valeur proche, si aucune correspondance n'est trouvée, on retourne l'élément suivant plus grand.
- 2 : Utilisation des caractères génériques "*", "?", "~" dans la plage "valeur_cherchée".
- [mode_recherche] : Une valeur ou une matrice de valeurs (par exemple {1 ; -1} ou {1 . -1} permet d'obtenir le 1er et le dernier !).
- 1 : Effectuez une recherche en commençant par le début de la plage "tableau_recherche" (valeur par défaut).
- -1 : Effectuez une recherche en commençant par le dernier élément de la plage "tableau_recherche".
- 2 : Effectuez une recherche plus rapide mais nécessite que la plage "tableau_recherche" soit triée en ordre croissant.
- -2 : Effectuez une recherche plus rapide mais nécessite que la plage "tableau_recherche" soit triée en ordre décroissant.
Résultat
Valeur unique de la "no_index_col/no_index_lig" colonne ou ligne de la plage "table_matrice" correspondant à "valeur_cherchée". Si la valeur n'est pas trouvée on obtient la valeur "#N/A".
Exemples
Les mêmes que pour INDEX-EQUIV.

La fonction FILTRE
Voir L'impressionnante fonction de calcul FILTRE.
Cette fonction permet de récupérer toutes les correspondances de la/les valeur(s) recherchée(s).
Pour ne sélectionner que la 1ère ou dernière on peut utiliser une de ces fonctions PRENDRE, EXCLURE, CHOISIRLIGNES, CHOISIRCOLONNES, INDEX.
Exemples
Les mêmes que pour INDEX-EQUIV.

Autre solution
L'utilisation de PowerQuery pourrait aussi être envisagée pour ce type de recherche mais cela dépasse le cadre de cet article.
Merci pour votre attention bienveillante.