Aller au contenu principal

Qu'est-ce que la fonction RECHERCHE ?

Définition
La fonction RECHERCHE trouve la plus grande valeur dans un vecteur qui est inférieure ou égale à la valeur cherchée, puis retourne la valeur correspondante dans un second vecteur. Elle effectue toujours une recherche approximative et exige que le vecteur de recherche soit trié en ordre croissant.

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

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.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

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.

1

valeur_cherchée

: la valeur que tu cherches dans le vecteur_recherche

C'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).

2

vecteur_recherche

: une plage d'une seule ligne ou d'une seule colonne dans laquelle chercher

C'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.

3

[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.

L’erreur fatale
Le piège le plus sournois de RECHERCHE : si ton vecteur de recherche n'est pas trié en ordre croissant, elle ne renvoie aucune erreur, juste un résultat faux. Trie toujours tes seuils du plus petit au plus grand avant de t'y fier.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

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.

Les étapes
  1. 1
    Dans une cellule, écris =RECHERCHE(.
  2. 2
    En 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.
  3. 3
    En 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.
  4. 4
    En 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.
  5. 5
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas pour traiter toutes les commandes d'un coup.
Au final, ta formule devrait ressembler à ça :=RECHERCHE(C2; $A$2:$A$19; $B$2:$B$19)
Explication
La fonction RECHERCHE ne cherche pas une correspondance exacte : elle retient le plus grand palier inférieur ou égal à la quantité, puis renvoie le prix qui lui fait face. La commande de 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.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =RECHERCHE(.
  2. 2
    En 1er argument : clique sur le poids du colis, B3, ici 7,5 kg. C'est la valeur que la fonction va situer dans le barème.
  3. 3
    En 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.
  4. 4
    En 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.
  5. 5
    Ferme 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.
Voici la formule que tu obtiens à la fin :=RECHERCHE(B3; B1:F1; B2:F2)
Explication
Le barème est couché en ligne, mais rien ne change pour la fonction : un vecteur est une ligne ou une colonne, au choix. Le poids de 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.
Exemple 3

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.

Les étapes
  1. 1
    Dans une cellule, écris =SIERREUR(.
  2. 2
    En 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 client D2 dans les seuils triés $A$2:$A$5 et renvoie le taux qui lui fait face $B$2:$B$5, mais elle produit #N/A dès qu'un client tombe sous le premier seuil.
  3. 3
    En 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.
  4. 4
    Ferme la parenthèse et appuie sur Entrée. Sur la ligne de Pierre, 40 € reste sous le seuil 100 et la cellule affiche « Pas de remise » plutôt que l'erreur.
Une fois les morceaux assemblés, ta formule donne ça :=SIERREUR(RECHERCHE(D2; $A$2:$A$5; $B$2:$B$5); "Pas de remise")
Explication
La fonction RECHERCHE situe 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.
Exemple 4

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.

Les étapes
  1. 1
    Dans une cellule, écris =RECHERCHE(.
  2. 2
    En 1er argument : saisis 2. Ce nombre est choisi pour rester introuvable, puisque le vecteur suivant ne contiendra que des 1, et comme la fonction retient le plus grand seuil inférieur ou égal à ce qu'elle cherche, elle glisse jusqu'au dernier 1 de la liste.
  3. 3
    En 2ᵉ argument : saisis le calcul qui marque les lignes remplies, 1/(C2:C7<>""). Le test C2:C7<>"" renvoie VRAI pour une cellule remplie et FAUX pour une cellule vide, et dans la division VRAI vaut 1 tandis que FAUX provoque une erreur #DIV/0! que la fonction ignore.
  4. 4
    En 3ᵉ argument : sélectionne la colonne dont tu veux la dernière valeur, C2:C7. La position du dernier 1 y désigne la ligne à renvoyer.
  5. 5
    Ferme la parenthèse et appuie sur Entrée. Le résultat s'arrête sur le dernier 1 rencontré, celui de la semaine S4, et affiche 14 150 €.
En mettant tout bout à bout, tu écris :=RECHERCHE(2; 1/(C2:C7<>""); C2:C7)
Explication
Ici, la fonction travaille sur un vecteur fabriqué qui ne contient que des 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.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreRECHERCHERECHERCHEVRECHERCHEHRECHERCHEX
Structure des donnéesVecteur unique (1D)Tableau vertical (2D)Tableau horizontal (2D)Tableau flexible (2D)
Type de rechercheApproximative uniquementExacte ou approximativeExacte ou approximativeExacte, approximative, multi-modes
Tri requisOui, ordre croissant obligatoireSeulement pour la recherche approx.Seulement pour la recherche approx.Non
CompatibilitéToutes versionsToutes versionsToutes versionsExcel 365 et Excel 2021+ uniquement
Cas d'usage idéalBarèmes simples, tranches de tarifsBases de données, catalogues produitsDonnées organisées en lignesRecherches modernes et complexes
Le savais-tu ?
RECHERCHE ne sert pas qu'aux barèmes. RECHERCHE(2; 1/(A1:A100<>""); A1:A100) va chercher la dernière valeur non vide d'une colonne : elle traque 2 (une valeur impossible) dans un tableau de 1 et d'erreurs, et te renvoie le dernier résultat valide.
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec RECHERCHE

1Astuce

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.

2Astuce

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.

3Astuce

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.

FAQ

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.

Ressources

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