RECHERCHE Excel : Comment utiliser cette formule de recherche et référence
=RECHERCHE(valeur_cherchée; vecteur_recherche; [vecteur_résultat])La formule RECHERCHE est l'une des fonctions les plus polyvalentes d'Excel pour localiser et retourner des données. Contrairement à VLOOKUP qui fonctionne uniquement sur des colonnes, RECHERCHE offre une flexibilité remarquable en travaillant aussi bien avec des lignes qu'avec des colonnes, et elle gère automatiquement les données triées ou non triées selon le contexte. Cette fonction est particulièrement utile lorsque vous devez chercher une valeur dans un vecteur (ligne ou colonne) et retourner la valeur correspondante d'un autre vecteur. La puissance de RECHERCHE réside dans sa capacité à adapter son comportement : en mode de recherche approximative, elle effectue une recherche dichotomique sur des données triées, tandis qu'en mode exact, elle scanne linéairement les données. Cela la rend idéale pour les analyses financières, les correspondances de données clients, et les opérations de consolidation de bases de données. Comprendre ses paramètres et ses limites vous permettra d'optimiser vos feuilles de calcul et d'éviter les pièges courants.
Syntaxe et paramètres
La syntaxe complète de RECHERCHE est : =RECHERCHE(valeur_cherchée; vecteur_recherche; [vecteur_résultat]). Le premier paramètre, valeur_cherchée, est la valeur que vous souhaitez localiser dans votre ensemble de données. Le deuxième paramètre, vecteur_recherche, est obligatoire et représente la plage de cellules (ligne ou colonne) dans laquelle vous effectuez la recherche. Le troisième paramètre, vecteur_résultat, est optionnel mais crucial : il spécifie la plage de cellules à partir de laquelle retourner la valeur correspondante. Si vous omettez ce paramètre, RECHERCHE retournera la valeur du vecteur_recherche lui-même. Un point essentiel à comprendre : RECHERCHE fonctionne différemment selon le contexte. Si le vecteur_recherche contient du texte, la fonction effectue une recherche exact. Si les données sont numériques et triées en ordre croissant, RECHERCHE effectue une recherche approximative et retourne la plus grande valeur inférieure ou égale à la valeur cherchée. Les deux vecteurs doivent avoir la même dimension (même nombre de cellules), et ils doivent être unidimensionnels (une seule ligne ou une seule colonne). Cette fonction est disponible dans Excel 2007 et versions ultérieures, y compris Excel 365.
lookup_valuelookup_vectorresult_vectorExemples pratiques
Recherche de prix produit par code article
=RECHERCHE("ART-2547"; A2:A100; B2:B100)Cette formule cherche le code 'ART-2547' dans la plage A2:A100. Lorsqu'elle trouve une correspondance exacte, elle retourne la valeur correspondante de la plage B2:B100, qui est le prix de l'article.
Recherche approximative dans une table de salaires
=RECHERCHE(12; 2:2; 3:3)RECHERCHE cherche 12 dans la ligne 2. Comme 12 n'existe pas exactement, la fonction retourne la valeur correspondant à 10 (la plus grande valeur inférieure à 12), qui est le salaire associé à 10 ans d'expérience.
Recherche de note d'étudiant par matricule
=RECHERCHE("MAT-2024-156"; A5:A50; D5:D50)La formule localise le matricule 'MAT-2024-156' dans la plage A5:A50 et retourne la note correspondante de la plage D5:D50. Contrairement à VLOOKUP, RECHERCHE peut chercher dans n'importe quelle colonne sans restriction d'ordre.
Points clés à retenir
- RECHERCHE est une fonction flexible qui fonctionne avec des lignes ou des colonnes, contrairement à VLOOKUP qui est limité aux colonnes
- La fonction adapte automatiquement son comportement : recherche exacte pour le texte, recherche approximative pour les nombres triés
- Les deux vecteurs doivent avoir exactement la même taille et être unidimensionnels pour éviter les erreurs #VALUE!
- Pour les données modernes dans Excel 365, XLOOKUP offre une alternative plus puissante et plus intuitive
- Combinez RECHERCHE avec IFERROR, TRIM et UPPER pour créer des solutions robustes et résistantes aux données imparfaites
Astuces de pro
Utilisez des plages nommées pour vos vecteurs de recherche et résultat. Cela rend vos formules plus lisibles et plus faciles à maintenir : =RECHERCHE(valeur; Codes_Produits; Prix_Produits)
Impact : Améliore la clarté du code, facilite la maintenance, réduit les erreurs de référence
Pour les recherches approximatives, triez toujours vos données en ordre croissant et testez avec des valeurs limites (valeur minimale, maximale, et intermédiaire) pour vérifier le comportement
Impact : Évite les résultats incorrects, garantit la fiabilité des analyses financières et statistiques
Préférez XLOOKUP à RECHERCHE dans Excel 365 pour les nouveaux projets. XLOOKUP offre une syntaxe plus intuitive, gère les erreurs nativement, et permet les recherches en sens inverse
Impact : Code plus moderne, moins d'erreurs, meilleures performances, compatibilité future
Testez toujours vos formules RECHERCHE avec CTRL+SHIFT+ENTRÉE si vous travaillez avec des plages complexes, et vérifiez que le type de données (texte vs nombre) est cohérent dans vos vecteurs
Impact : Évite les résultats inattendus, améliore la fiabilité des calculs, réduit les bugs en production
Combinaisons utiles
RECHERCHE avec IFERROR pour gestion d'erreurs
=IFERROR(RECHERCHE("CODE-123"; A2:A100; B2:B100); "Valeur non trouvée")Cette combinaison retourne le résultat de RECHERCHE si elle trouve la valeur, ou affiche un message personnalisé si la valeur n'existe pas. Cela améliore l'expérience utilisateur en évitant les erreurs #N/A visibles.
RECHERCHE avec UPPER pour recherche insensible à la casse
=RECHERCHE(UPPER("code"); UPPER(A2:A100); B2:B100)En convertissant à la fois la valeur cherchée et le vecteur_recherche en majuscules avec UPPER, vous effectuez une recherche insensible à la casse. Cela est utile lorsque les données contiennent des variations de casse (CODE, Code, code).
RECHERCHE avec TRIM pour éliminer les espaces
=RECHERCHE(TRIM(" CODE-123 "); TRIM(A2:A100); B2:B100)TRIM supprime les espaces inutiles au début et à la fin des cellules. Cette combinaison résout les problèmes courants où des espaces cachés empêchent la correspondance exacte. Particulièrement utile lors de l'importation de données externes.
Erreurs courantes
Cause : La valeur cherchée n'existe pas dans le vecteur_recherche, ou la recherche approximative ne trouve pas de valeur inférieure ou égale à la valeur cherchée.
Solution : Vérifiez l'orthographe exacte de la valeur cherchée. Pour les recherches approximatives, assurez-vous que le vecteur_recherche est trié en ordre croissant. Utilisez IFERROR pour gérer cette erreur : =IFERROR(RECHERCHE(...), "Non trouvé")
Cause : Les vecteurs (vecteur_recherche et vecteur_résultat) n'ont pas la même taille, ou un paramètre contient un type de données incompatible.
Solution : Vérifiez que les deux vecteurs contiennent exactement le même nombre de cellules. Par exemple, si vecteur_recherche couvre A1:A50, vecteur_résultat doit couvrir exactement 50 cellules. Assurez-vous aussi que les données ne contiennent pas de valeurs mixtes (texte et nombres mélangés).
Cause : Une cellule référencée dans la formule a été supprimée, ou la plage spécifiée n'existe pas.
Solution : Vérifiez que les plages A2:A100 et B2:B100 existent toujours et n'ont pas été accidentellement supprimées. Recréez la formule en sélectionnant manuellement les plages si nécessaire. Utilisez des plages nommées pour éviter ce problème à l'avenir.
Checklist de dépannage
- 1.Vérifiez que la valeur cherchée existe réellement dans le vecteur_recherche (vérifiez la casse, les espaces, et les caractères invisibles avec TRIM et UPPER)
- 2.Confirmez que les deux vecteurs (recherche et résultat) contiennent exactement le même nombre de cellules et sont unidimensionnels (une ligne OU une colonne, pas un rectangle)
- 3.Pour les recherches approximatives, vérifiez que le vecteur_recherche est trié en ordre croissant et contient des données numériques ou des dates
- 4.Assurez-vous que les types de données sont cohérents (ne mélangez pas texte et nombres dans le même vecteur)
- 5.Testez la formule avec une plage réduite (par exemple A2:A10 au lieu de A2:A1000) pour isoler le problème
- 6.Utilisez la fonction RECHERCHE en mode pas à pas (F9 dans l'éditeur de formule) pour vérifier les valeurs intermédiaires et identifier où la formule échoue
Cas particuliers
Recherche approximative avec des valeurs décimales
Comportement : RECHERCHE retourne la plus grande valeur inférieure ou égale à la valeur cherchée. Si vous cherchez 5.7 dans [1, 3, 5, 8, 10], elle retourne la valeur correspondant à 5.
Solution : Arrondissez les valeurs cherchées ou les données source pour éviter les problèmes de précision décimale
Particulièrement important en finance où la précision est critique
Vecteur_recherche contient des valeurs en double
Comportement : RECHERCHE retourne toujours la première occurrence trouvée (en recherche exacte) ou la dernière valeur valide pour une recherche approximative
Solution : Nettoyez vos données pour éliminer les doublons, ou utilisez INDEX/MATCH pour plus de contrôle
Les doublons peuvent masquer les vrais problèmes de données
Recherche sur des données triées en ordre décroissant
Comportement : RECHERCHE ne fonctionne pas correctement pour les recherches approximatives sur des données en ordre décroissant. Elle retournera #N/A ou des résultats incorrects.
Solution : Triez vos données en ordre croissant, ou inversez l'ordre avec une transformation préalable, ou utilisez une formule INDEX/MATCH plus flexible
C'est une limitation majeure de RECHERCHE que XLOOKUP résout
Limitations
- •RECHERCHE ne supporte qu'un seul critère de recherche. Pour les recherches multi-critères, vous devez utiliser SUMIFS, SUMPRODUCT ou INDEX/MATCH
- •Les vecteurs doivent être unidimensionnels (une seule ligne ou une seule colonne). Vous ne pouvez pas rechercher dans un rectangle de données directement
- •Pour les recherches approximatives, les données doivent être triées en ordre croissant. RECHERCHE ne fonctionne pas avec des données en ordre décroissant
- •RECHERCHE est moins performante que VLOOKUP ou XLOOKUP sur de très grandes bases de données (plus de 100 000 lignes). Pour les données massives, envisagez des solutions de base de données ou des outils BI
Alternatives
Compatibilité
✓ Excel
Depuis 2007
=RECHERCHE(valeur_cherchée; vecteur_recherche; [vecteur_résultat])✓Google Sheets
=RECHERCHE(valeur_cherchée; vecteur_recherche; [vecteur_résultat])Syntaxe identique, fonctionne de manière similaire. Testez les recherches approximatives pour vérifier le tri des données.
✓LibreOffice
=LOOKUP(valeur_cherchée; vecteur_recherche; [vecteur_résultat])