La fonction RECHERCHE te permet de trouver une valeur dans un vecteur (ligne ou colonne) et de retourner la valeur correspondante dans un autre vecteur. Cette fonction de recherche approximative est particulièrement utile pour les barèmes, les tables de conversion et les systèmes de tarification progressive.
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 de la fonction RECHERCHE
=RECHERCHE(valeur_cherchée; vecteur_recherche; [vecteur_résultat])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.
Astuce : Utilise des références absolues ($A$1:$A$5) pour pouvoir copier la formule sur d'autres lignes sans que la plage ne se déplace. La formule devient =RECHERCHE(C2; $A$2:$A$6; $B$2:$B$6).
[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.
Pas envie d'écrire la formule RECHERCHE à la main ?
Génère-la avec notre IAExemples pratiques pas à pas
Logistique : grille tarifaire dégressive par volume de commande
Tu travailles en logistique et ton entreprise applique des tarifs dégressifs selon le volume de commande. Plus le client commande, plus le prix unitaire diminue. Sans RECHERCHE, tu aurais besoin d'une cascade de SI imbriqués difficile à maintenir.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Quantité min | Prix unitaire (€) | Commande | Prix applicable |
| 2 | 1 | 15,00 | 50 | 15,00 |
| 3 | 100 | 12,50 | 150 | 12,50 |
| 4 | 500 | 10,00 | 750 | 10,00 |
| 5 | 1 000 | 8,50 | 2 500 | 7,50 |
| 6 | 2 000 | 7,50 |
=RECHERCHE(C2; $A$2:$A$6; $B$2:$B$6)La fonction cherche la commande de 150 unités dans les seuils de la colonne A, trouve que 100 <= 150 < 500, et retourne le prix unitaire correspondant : 12,50 €. Pour modifier les paliers ou les prix, il suffit de changer les valeurs du tableau sans toucher à la formule.
Astuce de pro : Pour calculer directement le montant total de la commande, combine RECHERCHE avec une multiplication : =C2*RECHERCHE(C2; $A$2:$A$6; $B$2:$B$6). Pratique pour automatiser les devis.
Enseignement : convertir des scores numériques en mentions
Tu enseignes et tu veux convertir automatiquement les scores numériques en mentions (A, B, C, D, F) selon un barème. Sans RECHERCHE, il faudrait écrire =SI(C2>=90;"A";SI(C2>=80;"B";...)), une formule fragile et difficile à faire évoluer.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Seuil | Mention | Score étudiant | Mention obtenue |
| 2 | 0 | F | 87 | B |
| 3 | 60 | D | 92 | A |
| 4 | 70 | C | 58 | F |
| 5 | 80 | B | 73 | C |
| 6 | 90 | A | 65 | D |
=RECHERCHE(C2; $A$2:$A$6; $B$2:$B$6)Un score de 87 tombe dans la tranche [80-90[ : la fonction trouve que 80 est le plus grand seuil inférieur ou égal à 87, et retourne B. Pour durcir le barème (par exemple passer le seuil A à 95), modifie simplement la valeur en colonne A, la formule s'adapte toute seule.
Commercial : grille de commissions par palier de CA
Tu es responsable RH et tu calcules les commissions de tes commerciaux selon leur chiffre d'affaires mensuel. La grille prévoit des taux croissants selon les paliers atteints. RECHERCHE détermine automatiquement le bon taux sans conditions imbriquées.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | CA minimum (k€) | Commission % | CA vendeur (k€) | Taux applicable |
| 2 | 0 | 2% | 45 | 3% |
| 3 | 30 | 3% | 68 | 5% |
| 4 | 50 | 5% | 125 | 8% |
| 5 | 100 | 8% | 22 | 2% |
| 6 | 150 | 10% |
=RECHERCHE(C2; $A$2:$A$6; $B$2:$B$6)Un vendeur avec 68 k€ de CA obtient un taux de 5%. La commission mensuelle est donc 68 000 × 5% = 3 400 €. Pour modifier un palier ou un taux, change simplement les données du tableau sans réécrire les formules.
Astuce de pro : Pour calculer directement la commission en euros : =C2*1000*RECHERCHE(C2; $A$2:$A$6; $B$2:$B$6). Si tu travailles avec des pourcentages texte comme "5%", convertis-les d'abord en valeurs numériques (0,05) dans le tableau pour que la multiplication fonctionne.
Comptabilité : automatiser le taux de TVA selon le montant
Tu travailles en comptabilité et tu dois appliquer le bon taux de TVA selon le montant de la transaction. La règle métier est définie dans un tableau de référence que tu peux faire évoluer sans toucher aux formules.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Montant min (€) | Taux TVA | Montant facture | TVA applicable |
| 2 | 0 | 5,5% | 85 | 5,5% |
| 3 | 100 | 10% | 250 | 10% |
| 4 | 500 | 20% | 1 200 | 20% |
| 5 | 1 000 | 20% | 45 | 5,5% |
=RECHERCHE(C2; $A$2:$A$5; $B$2:$B$5)Pour une facture de 85 €, la fonction trouve que 0 <= 85 < 100, et applique le taux 5,5% ; pour une facture de 250 €, elle applique 10%. La formule se copie sur toutes les lignes de ta feuille de saisie et s'adapte automatiquement à chaque montant.
Astuce de pro : Combine RECHERCHE avec une multiplication pour calculer directement le montant TTC : =C2*(1+RECHERCHE(C2; $A$2:$A$5; $B$2:$B$5)). Pratique pour automatiser tes factures.
Envie de t'entraîner sur de vrais exercices Excel ?
M'entraînerLes 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 sur la fonction RECHERCHE
Quelle différence entre RECHERCHE, RECHERCHEV et RECHERCHEH ?
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.
Comment RECHERCHE gère-t-elle les valeurs approximatives ?
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.
Pourquoi RECHERCHE retourne-t-elle la dernière valeur de mon tableau ?
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.
Peut-on utiliser RECHERCHE pour chercher du texte ?
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.
Comment gérer les erreurs quand la valeur n'existe pas dans la plage ?
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
Les fonctions similaires : RECHERCHEV, RECHERCHEH, EQUIV, INDEX, SIERREUR
Bloqué sur une formule Excel ?
Pose ta question à notre assistant Excel IA, il te sort la bonne formule en quelques secondes.
Essayer l'assistant IAGratuit · 10 questions par mois

