Qu'est-ce que la fonction RECHERCHE ?
RECHERCHE te sert quand tu dois trouver la bonne tranche dans un barème sans écrire une cascade de SI imbriqués : elle repère toute seule le seuil applicable dès que ta valeur tombe entre deux paliers. Pratique dès que la correspondance exacte n'existe pas et que c'est justement l'approximation qui t'intéresse.
Contrairement à RECHERCHEV qui travaille sur des tableaux multi-colonnes, RECHERCHE est optimisée pour les recherches simples dans des listes unidimensionnelles. Sa force réside dans sa capacité à trouver automatiquement la tranche ou la catégorie appropriée sans nécessiter de correspondance exacte, ce qui la rend idéale pour les grilles de commissions, les tranches d'imposition ou les systèmes de notation.
Syntaxe
=RECHERCHE(valeur_cherchée; vecteur_recherche; [vecteur_résultat])Clique sur un argument pour aller à son explication.
RECHERCHE effectue toujours une recherche approximative. Elle retourne la plus grande valeur de vecteur_recherche inférieure ou égale à valeur_cherchée. Pour une correspondance exacte, utilise plutôt RECHERCHEV avec le 4e argument à FAUX.

Comprendre chaque paramètre de la fonction RECHERCHE
RECHERCHE prend ses arguments dans un ordre précis : d'abord la valeur que tu traques, puis le vecteur où la chercher, et enfin le vecteur d'où tirer le résultat. Les deux premiers sont obligatoires ; c'est le troisième, facultatif, qu'il ne faut surtout pas oublier, sinon la fonction te renvoie le seuil au lieu de la valeur que tu voulais vraiment.
valeur_cherchée
: la valeur que tu cherches dans le vecteur_rechercheC'est le point de départ de ta recherche, l'élément que tu veux localiser pour obtenir une information correspondante.
Ce peut être un nombre, du texte, une valeur logique ou une référence de cellule. Par exemple, pour chercher le prix applicable à une commande de 150 unités, la valeur_cherchée est 150 ou la référence de la cellule contenant ce chiffre.
Attention : Si la valeur_cherchée est inférieure à toutes les valeurs du vecteur_recherche, RECHERCHE renvoie #N/A. Assure-toi que ton vecteur commence par une valeur couvrant le minimum possible (souvent 0).
vecteur_recherche
: une plage d'une seule ligne ou d'une seule colonne dans laquelle chercherC'est ton tableau de référence qui contient les seuils ou valeurs de comparaison.
Ce vecteur DOIT ABSOLUMENT être trié en ordre croissant pour que la recherche approximative fonctionne correctement. Si les données ne sont pas triées, les résultats seront imprévisibles et incorrects sans aucun message d'erreur d'Excel.
[vecteur_résultat]
: une plage d'une seule ligne ou colonne contenant les valeurs à retourner(facultatif)C'est la colonne des résultats que tu veux obtenir (prix, notes, taux, etc.).
Si tu omets ce paramètre, RECHERCHE retourne la valeur trouvée dans le vecteur_recherche lui-même, ce qui est rarement utile. Ce vecteur doit avoir exactement la même taille et la même orientation (ligne ou colonne) que le vecteur_recherche.
Attention : Si vecteur_recherche et vecteur_résultat n'ont pas la même taille (nombre de cellules), Excel additionne les mauvaises valeurs ou renvoie #REF!. Vérifie toujours que tes deux plages couvrent exactement le même nombre de lignes.

Exemples pratiques pas à pas
Comment trouver la bonne tranche d'un barème avec la fonction RECHERCHE
Un client t'appelle pour valider sa commande et il veut connaître son prix unitaire tout de suite. Ta grille tarifaire dégressive tient dans deux colonnes, la quantité minimale de chaque palier et le prix associé, et les commandes du jour sont listées juste à côté. La fonction RECHERCHE identifie le palier qui correspond à chaque quantité et ramène le prix, sans que tu aies à parcourir la grille ligne par ligne.
- 1Dans une cellule, écris
=RECHERCHE(. - 2En 1er argument : clique sur la quantité commandée,
C2. C'est elle que la fonction compare aux paliers du barème pour trouver la bonne tranche. - 3En 2ᵉ argument : sélectionne les quantités minimales de chaque palier,
$A$2:$A$19. Ce sont les seuils auxquels la quantité est comparée, et ils sont triés du plus petit au plus grand, ce qui permet à la fonction de retenir la bonne tranche. Les$figent la plage pour que la recopie vers le bas ne la décale pas. - 4En 3ᵉ argument : sélectionne les prix unitaires,
$B$2:$B$19. C'est la colonne d'où sort la réponse, et elle doit couvrir exactement le même nombre de lignes que les seuils, sinon la fonction renvoie le prix d'un autre palier. - 5Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour traiter toutes les commandes d'un coup.
=RECHERCHE(C2; $A$2:$A$19; $B$2:$B$19)50 unités tombe pile sur le palier 50, donc le prix appliqué est 13,50 €. Recopiée vers le bas, la formule traite toutes les commandes d'un coup.Comment chercher dans un barème en ligne avec la fonction RECHERCHE
Le transporteur t'a envoyé sa grille de frais de port et tu l'as recopiée en haut de ta feuille, à plat sur deux lignes : les poids minimaux d'un côté, les tarifs juste en dessous. Un colis de 7,5 kg part demain et tu veux annoncer le bon montant au client avant la clôture. La fonction RECHERCHE lit ce barème en ligne aussi bien qu'en colonne et te sort le tarif de la tranche.
- 1Dans une cellule, écris
=RECHERCHE(. - 2En 1er argument : clique sur le poids du colis,
B3, ici7,5kg. C'est la valeur que la fonction va situer dans le barème. - 3En 2ᵉ argument : sélectionne les poids minimaux de chaque tranche,
B1:F1. Le barème est ici couché en ligne, et la fonction l'accepte aussi bien qu'une colonne du moment que les valeurs sont triées du plus petit au plus grand. - 4En 3ᵉ argument : sélectionne les frais de port,
B2:F2. Ils doivent suivre la même orientation en ligne et la même longueur que les poids, sinon la fonction renvoie le tarif d'une autre tranche. - 5Ferme la parenthèse et appuie sur Entrée. La fonction lit ce barème en ligne aussi bien qu'en colonne et sort le tarif de la tranche.
=RECHERCHE(B3; B1:F1; B2:F2)7,5 kg dépasse le seuil 5 sans atteindre 10, donc la tranche retenue est celle des 5 kg et les frais s'élèvent à 9,90 €. Il suffit que le vecteur de résultats ait la même orientation et la même longueur que le vecteur de recherche.Comment gérer l'erreur #N/A avec les fonctions RECHERCHE et SIERREUR
Ton programme de fidélité démarre à 100 € d'achats, et en dessous il n'y a tout simplement pas de remise. Les clients du mois sont listés avec leur total d'achats, et tu veux la colonne des remises prête avant l'envoi des relances de fin de mois. Le souci, c'est que la fonction RECHERCHE affiche l'erreur #N/A dès qu'un client passe sous le premier seuil du barème. En enveloppant la recherche dans la fonction SIERREUR, tu remplaces cette erreur par un texte lisible.
- 1Dans une cellule, écris
=SIERREUR(. - 2En 1er argument : écris la recherche à surveiller et referme-la,
RECHERCHE(D2; $A$2:$A$5; $B$2:$B$5). Elle situe le total d'achats du clientD2dans les seuils triés$A$2:$A$5et renvoie le taux qui lui fait face$B$2:$B$5, mais elle produit#N/Adès qu'un client tombe sous le premier seuil. - 3En 2ᵉ argument : saisis le texte à afficher quand la recherche échoue,
"Pas de remise". Les guillemets sont obligatoires pour qu'Excel affiche ce texte tel quel au lieu d'y chercher un nom de plage. - 4Ferme la parenthèse et appuie sur Entrée. Sur la ligne de Pierre,
40€ reste sous le seuil100et la cellule affiche « Pas de remise » plutôt que l'erreur.
=SIERREUR(RECHERCHE(D2; $A$2:$A$5; $B$2:$B$5); "Pas de remise")850 € entre les seuils 600 et 1 000, retient le plus grand seuil qui ne dépasse pas ce montant et renvoie 12 %. Sur la ligne de Pierre, 40 € tombe sous le premier seuil du barème et la recherche produit l'erreur #N/A : c'est là que SIERREUR prend le relais et affiche « Pas de remise » à la place.Comment récupérer la dernière valeur d'une colonne avec la fonction RECHERCHE
Ton chiffre d'affaires se remplit semaine après semaine, et certaines lignes attendent encore leur saisie. Ton chef veut le dernier chiffre connu avant la réunion, et tu ne veux pas redescendre la colonne à la main chaque lundi pour aller le chercher. La fonction RECHERCHE ramène toute seule la dernière valeur saisie, et le résultat se met à jour dès qu'une nouvelle ligne est remplie.
- 1Dans une cellule, écris
=RECHERCHE(. - 2En 1er argument : saisis
2. Ce nombre est choisi pour rester introuvable, puisque le vecteur suivant ne contiendra que des1, et comme la fonction retient le plus grand seuil inférieur ou égal à ce qu'elle cherche, elle glisse jusqu'au dernier1de la liste. - 3
- 4En 3ᵉ argument : sélectionne la colonne dont tu veux la dernière valeur,
C2:C7. La position du dernier1y désigne la ligne à renvoyer. - 5Ferme la parenthèse et appuie sur Entrée. Le résultat s'arrête sur le dernier
1rencontré, celui de la semaine S4, et affiche14 150€.
=RECHERCHE(2; 1/(C2:C7<>""); C2:C7)1 (les lignes remplies) et des erreurs (les lignes vides). Aucun 1 n'atteint 2, donc la recherche descend jusqu'au bout et s'arrête sur le dernier 1 rencontré, celui de la semaine S4 : le résultat est 14 150 €. Dès que la semaine S5 sera saisie, le chiffre affiché suivra tout seul.
Les erreurs fréquentes avec la fonction RECHERCHE
Avec RECHERCHE, deux ennuis dominent et n'ont pas le même visage. Le #N/A est bruyant : il surgit dès que ta valeur tombe sous le plus petit seuil du vecteur. Le vecteur mal trié, lui, est silencieux : la formule te sort un résultat faux sans broncher.
Le reste vient de plages mal accordées : un vecteur_résultat d'une taille différente du vecteur_recherche, un troisième argument oublié, ou des doublons dans tes seuils qui font remonter la mauvaise occurrence.
Valeur cherchée inférieure à toutes les valeurs du vecteur
RECHERCHE renvoie #N/A quand la valeur_cherchée est inférieure à la plus petite valeur du vecteur_recherche. Par exemple, chercher 5 dans [10; 20; 30] échoue car 5 < 10.
Solution : Commence toujours ton vecteur_recherche par la valeur la plus basse couvrant tous les cas possibles, généralement 0. Si des valeurs négatives sont possibles, commence encore plus bas. Enveloppe la formule dans SIERREUR pour afficher un message explicite : =SIERREUR(RECHERCHE(A1;B:B;C:C);"Hors plage").
Résultats faux sans message d'erreur
Si le vecteur_recherche n'est pas trié en ordre croissant, RECHERCHE renvoie des résultats imprévisibles et incorrects sans aucun avertissement. C'est le piège le plus courant : la formule s'exécute, mais les valeurs retournées sont fausses.
Solution : Trie ton vecteur_recherche en ordre croissant (du plus petit au plus grand). Vérifie visuellement que les seuils sont bien ordonnés avant d'utiliser la formule. Pour les données dynamiques, ajoute un tri automatique avec la fonction TRI (disponible dans Excel 365).
Tailles de vecteurs incompatibles
Si vecteur_recherche et vecteur_résultat n'ont pas exactement la même taille, Excel peut renvoyer #REF! ou retourner des valeurs décalées et incorrectes. Un vecteur de 5 lignes associé à un vecteur de 4 lignes provoque ce type de problème.
Solution : Vérifie que vecteur_recherche et vecteur_résultat ont la même première ligne, la même dernière ligne et donc le même nombre de cellules. Par exemple : =RECHERCHE(A1; B1:B5; C1:C5) est correct, =RECHERCHE(A1; B1:B5; C1:C4) ne l'est pas.
Oublier le vecteur_résultat
Si tu omets le troisième argument, RECHERCHE retourne la valeur trouvée dans le vecteur_recherche lui-même, c'est-à-dire le seuil, pas la valeur correspondante. Ce n'est presque jamais le résultat attendu.
Solution : Spécifie toujours le troisième argument avec la plage contenant les valeurs à retourner. Remplace =RECHERCHE(A1; B1:B5) par =RECHERCHE(A1; B1:B5; C1:C5).
Doublons dans le vecteur de recherche
Quand le vecteur_recherche contient des valeurs dupliquées (ex: [10; 20; 20; 30]), RECHERCHE retourne le résultat correspondant à la dernière occurrence de la valeur trouvée, ce qui peut prêter à confusion.
Solution : Assure-toi que tes seuils de recherche sont uniques. Supprime les doublons dans le vecteur_recherche avant d'utiliser la formule.

RECHERCHE vs RECHERCHEV vs RECHERCHEH vs RECHERCHEX
Garde RECHERCHE pour ce qu'elle fait de mieux : une liste à une seule dimension, triée en ordre croissant, où tu veux la tranche qui correspond (barèmes, paliers de tarif, mentions). Dès que tes données forment un vrai tableau à plusieurs colonnes, passe à RECHERCHEV (vertical) ou RECHERCHEH (horizontal), surtout si tu as besoin d'une correspondance exacte que RECHERCHE ne sait pas faire.
Si tu es sur Excel 365 ou 2021+, RECHERCHEX règle tout ça d'un coup : pas de tri imposé, recherche dans n'importe quelle direction et correspondance exacte par défaut.
| Critère | RECHERCHE | RECHERCHEV | RECHERCHEH | RECHERCHEX |
|---|---|---|---|---|
| Structure des données | Vecteur unique (1D) | Tableau vertical (2D) | Tableau horizontal (2D) | Tableau flexible (2D) |
| Type de recherche | Approximative uniquement | Exacte ou approximative | Exacte ou approximative | Exacte, approximative, multi-modes |
| Tri requis | Oui, ordre croissant obligatoire | Seulement pour la recherche approx. | Seulement pour la recherche approx. | Non |
| Compatibilité | Toutes versions | Toutes versions | Toutes versions | Excel 365 et Excel 2021+ uniquement |
| Cas d'usage idéal | Barèmes simples, tranches de tarifs | Bases de données, catalogues produits | Données organisées en lignes | Recherches modernes et complexes |

Astuces avancées avec RECHERCHE
Utilise SIERREUR pour protéger tes formules
Quand une valeur peut tomber en dehors de la plage de ton vecteur, RECHERCHE renvoie #N/A qui s'affiche dans ta cellule. Enveloppe la formule dans =SIERREUR(RECHERCHE(A1; $B$1:$B$5; $C$1:$C$5); "Hors plage") pour afficher un message clair à la place de l'erreur.
Cette précaution est particulièrement utile dans les fichiers partagés où d'autres utilisateurs peuvent saisir des valeurs inattendues.
Combine RECHERCHE avec une table externe pour des barèmes évolutifs
Place ton vecteur_recherche et ton vecteur_résultat dans un tableau nommé sur une feuille dédiée (ex: Barèmes). Ta formule devient =RECHERCHE(A1; Barèmes[Seuil]; Barèmes[Valeur]) et tes collègues peuvent modifier les paliers sans toucher aux formules de calcul.
Cette architecture sépare proprement la logique de calcul des données métier.
Recherche en ordre inverse avec RECHERCHE sur une plage triée décroissante
Pour trouver la dernière valeur non vide dans une colonne, une astuce classique consiste à utiliser =RECHERCHE(2; 1/(A1:A100<>""); A1:A100). Cette formule matricielle cherche 2 (valeur impossible) dans un tableau de 1 et d'erreurs, et retourne le dernier résultat valide.
Cette technique va bien au-delà des barèmes et fait de RECHERCHE un outil flexible pour les recherches sur des plages dynamiques.
Questions fréquentes
RECHERCHE fonctionne sur un seul vecteur (une ligne ou une colonne) et effectue uniquement une recherche approximative. RECHERCHEV cherche dans la première colonne d'un tableau et retourne une valeur à droite. RECHERCHEH cherche dans la première ligne et retourne une valeur en dessous. RECHERCHE est idéale pour les listes simples à un seul critère (barèmes, tranches) ; RECHERCHEV et RECHERCHEH sont plus adaptées aux tableaux complexes avec correspondance exacte.
Par défaut, RECHERCHE trouve la plus grande valeur du vecteur_recherche qui est inférieure ou égale à la valeur cherchée. Le vecteur de recherche doit être trié en ordre croissant pour que ce comportement fonctionne correctement. C'est parfait pour des tranches (notes, commissions, tarifs progressifs) mais peut donner des résultats inattendus si les données ne sont pas triées.
Si la valeur_cherchée est supérieure à toutes les valeurs du vecteur_recherche, RECHERCHE retourne la dernière valeur du vecteur_résultat. C'est le comportement normal pour la recherche approximative. Vérifie que ta valeur cherchée est dans la plage attendue et que tes données de recherche couvrent tous les cas possibles, y compris les valeurs hautes.
Oui, RECHERCHE fonctionne avec du texte, mais uniquement en correspondance approximative si le texte est trié alphabétiquement. Pour une recherche exacte de texte, RECHERCHEV avec le 4e argument à FAUX ou RECHERCHEX sont beaucoup plus fiables.
En pratique, RECHERCHE avec du texte est rarement utilisée car le tri alphabétique exact est difficile à maintenir et les résultats peuvent être surprenants.
Utilise SIERREUR pour capturer l'erreur #N/A et afficher un message personnalisé : =SIERREUR(RECHERCHE(A1; B:B; C:C); "Non trouvé").
Alternativement, vérifie d'abord avec ESTNA avant d'appeler RECHERCHE, mais SIERREUR est plus concise et couvre davantage de types d'erreurs.
Pour aller plus loin
Continue sur ta lancée après la fonction RECHERCHE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir




