Qu'est-ce que la fonction CHERCHE ?
CHERCHE (SEARCH en anglais) te sert de repère quand tu ne sais pas à l'avance à quelle position se trouve ce que tu cherches. Plutôt que de compter les caractères toi-même, tu laisses la fonction localiser le symbole ou le mot pivot, puis tu bâtis l'extraction dessus.
Concrètement, CHERCHE est presque toujours combinée avec STXT, GAUCHE ou DROITE : elle localise un caractère repère (un @, un tiret, une virgule) et les autres fonctions extraient ce qui l'entoure. Vérifier qu'un numéro de TVA commence par "FR", découper un nom complet au format "Nom, Prénom", isoler une catégorie dans un code produit : CHERCHE est le point de départ de toutes ces manipulations.
Syntaxe
=CHERCHE(texte_cherché; texte; [no_départ])Clique sur un argument pour aller à son explication.

Comprendre chaque paramètre de la fonction CHERCHE
Les trois arguments se lisent dans l'ordre : ce que tu cherches, puis dans quelle chaîne, et enfin à partir de quel caractère commencer. Seul ce dernier, no_départ, est facultatif et vaut 1 par défaut. C'est lui qu'on ressort pour aller chercher une deuxième occurrence, en relançant CHERCHE juste après la première.
texte_cherché
: c'est le texte ou le caractère que tu cherchesÇa peut être un caractère simple comme "@", un mot comme "excel", ou même une référence de cellule comme B1. CHERCHE n'est pas sensible à la casse : chercher "EXCEL" trouvera aussi "excel" ou "Excel".
Tu peux utiliser les jokers * (n'importe quel nombre de caractères) et ? (un seul caractère) pour des recherches plus flexibles. Par exemple, "ex*" trouve "excel", "exemple" ou "expert".
texte
: c'est la chaîne de texte dans laquelle tu effectues la rechercheGénéralement, c'est une référence de cellule comme A1 qui contient un email, un code produit ou toute autre donnée. Excel examine ce texte caractère par caractère jusqu'à trouver texte_cherché.
no_départ
: ce paramètre optionnel indique à partir de quelle position commencer la recherche(facultatif)Par défaut, c'est 1 (le premier caractère). Si tu mets 5, Excel ignorera les 4 premiers caractères et commencera à chercher à partir du 5e.
C'est utile quand tu veux trouver une deuxième occurrence : tu cherches d'abord la première, puis tu relances CHERCHE à partir de cette position + 1 : =CHERCHE("-"; A1; CHERCHE("-"; A1)+1) trouve le deuxième tiret.
Attention : Si no_départ est supérieur à la longueur du texte, ou inférieur à 1, CHERCHE renvoie #VALEUR!. Utilise NBCAR pour vérifier la longueur si besoin.

Exemples pratiques pas à pas
Comment extraire le domaine d'un email en combinant STXT et la fonction CHERCHE
Ton fichier clients mélange des adresses personnelles et des adresses professionnelles, et personne ne sait dire quelle part de la base vient de boîtes mail gratuites. Tant que le domaine reste collé au reste de l'adresse, aucun tri n'est possible.
Tu as une colonne Email où chaque adresse a une longueur différente, et tu veux récupérer uniquement ce qui suit le @. CHERCHE donne la position du @ dans l'adresse, et STXT se sert de cette position pour extraire toute la fin, quelle que soit la taille du domaine.
- 1Dans une cellule, écris
=STXT(. - 2En 1er argument : clique sur la cellule qui contient l'adresse email complète,
D2. C'est le texte que la fonction va découper. - 3En 2ᵉ argument : écris
CHERCHE("@";D2)+1. La fonction CHERCHE renvoie la position de l'arobase,13sur la première ligne, et le+1fait démarrer juste après elle ; sans ce décalage, l'extraction emporterait l'arobase avec le domaine. - 4En 3ᵉ argument : saisis
100, une longueur volontairement large pour couvrir n'importe quel domaine. La fonction s'arrête de toute façon à la fin du texte, donc tu ramènes toujours la fin de l'adresse en entier. - 5Ferme la parenthèse et appuie sur Entrée.
=STXT(D2;CHERCHE("@";D2)+1;100)@ de marie.dupont@gmail.com se trouve en position 13, donc l'extraction démarre au caractère 14 et ramène gmail.com, sans le @.Comment repérer un mot sans te soucier des majuscules avec la fonction CHERCHE
Les demandes arrivent avec des objets écrits à la main, et le mot « urgent » y apparaît tantôt en majuscules, tantôt en minuscules, tantôt au féminin. Un simple tri alphabétique laisse forcément passer des tickets sensibles.
Tu as les objets des messages en colonne B et tu veux marquer automatiquement ceux qui contiennent ce mot. CHERCHE ignore la casse et signale une position dès que le mot est présent, là où TROUVE, sensible à la casse, ne verrait que la graphie exacte que tu aurais tapée.
- 1Dans une cellule, écris
=SI(. - 2En 1er argument : écris le test
SIERREUR(CHERCHE("urgent";B2);0)>0. La fonction CHERCHE cherche le mot dans l'objet du message et ignore la casse, si bien queURGENTetUrgentsont attrapés aussi ; comme elle renvoie une erreur quand le mot est absent, la fonction SIERREUR ramène ce cas à0et la comparaison>0sépare enfin les deux situations. - 3En 2ᵉ argument : écris
"Prioritaire", la mention des messages qui contiennent le mot. - 4En 3ᵉ argument : écris
"Standard", qui couvre tous les autres. - 5Ferme la parenthèse et appuie sur Entrée.
=SI(SIERREUR(CHERCHE("urgent";B2);0)>0;"Prioritaire";"Standard")Attention : Si tu veux au contraire distinguer URGENT de urgent, CHERCHE ne convient pas : c'est TROUVE qu'il faut utiliser, car elle seule est sensible à la casse.
Comment isoler le début d'un code en combinant GAUCHE et la fonction CHERCHE
Tes codes produits portent la catégorie dans leur préfixe, mais ce préfixe n'a pas toujours la même longueur : trois lettres ici, quatre là. Découper à un nombre fixe de caractères casserait donc une partie des lignes.
Tu as les codes en colonne A au format CATÉGORIE-NUMÉRO et tu veux la catégorie seule pour regrouper les ventes par famille. CHERCHE repère le tiret où qu'il soit, et GAUCHE coupe juste avant.
- 1Dans une cellule, écris
=GAUCHE(. - 2En 1er argument : clique sur la cellule qui contient le code produit complet,
A2. - 3En 2ᵉ argument : écris
CHERCHE("-";A2)-1. La fonction CHERCHE renvoie la position du tiret,5pourELEC-1245, et le-1fait s'arrêter juste avant lui ; sans ce retrait, le résultat seraitELEC-avec le séparateur collé au bout. - 4Ferme la parenthèse et appuie sur Entrée.
=GAUCHE(A2;CHERCHE("-";A2)-1)Comment atteindre la deuxième occurrence d'un séparateur avec la fonction CHERCHE
Les références de ton catalogue empilent trois informations séparées par des tirets, et c'est celle du milieu qui t'intéresse pour les regroupements d'achats. Le pays devant occupe deux lettres, la famille derrière trois ou quatre : rien n'est à position fixe.
Tu as ces références en colonne A au format PAYS-FAMILLE-NUMÉRO et tu veux le bloc central. Le troisième argument de CHERCHE, no_départ, permet justement de reprendre la recherche après le premier tiret pour attraper le second.
- 1Dans une cellule, écris
=STXT(. - 2En 1er argument : clique sur la cellule qui contient la référence complète,
A2. - 3En 2ᵉ argument : écris
CHERCHE("-";A2)+1, le caractère qui suit le premier tiret. La famille de produit commence exactement là. - 4En 3ᵉ argument : écris
CHERCHE("-";A2;CHERCHE("-";A2)+1)-CHERCHE("-";A2)-1. Le troisième argument de la fonction CHERCHE lui dit de ne commencer à chercher qu'après le premier tiret, ce qui lui fait renvoyer8au lieu de3, et la soustraction8-3-1donne4, le nombre de caractères entre les deux tirets. - 5Ferme la parenthèse et appuie sur Entrée.
=STXT(A2;CHERCHE("-";A2)+1;CHERCHE("-";A2;CHERCHE("-";A2)+1)-CHERCHE("-";A2)-1)
Les erreurs fréquentes avec la fonction CHERCHE
Avec CHERCHE, ce qui coince tourne presque toujours autour du #VALEUR! : il tombe soit parce que le texte cherché n'existe pas dans la chaîne, soit parce que ton no_départ pointe en dehors du texte. Le troisième traquenard est plus sournois : comme CHERCHE ignore les majuscules, elle trouve "excel" dans "EXCEL" là où tu attendais un échec.
Erreur #VALEUR! quand le texte cherché est absent
C'est l'erreur la plus courante avec CHERCHE. Elle apparaît quand le texte que tu cherches n'existe pas dans la chaîne. Par exemple, chercher un "@" dans un texte qui n'est pas un email, ou tester un "FR" dans un numéro étranger.
Solution : Entoure ta formule de SIERREUR pour gérer ce cas : =SIERREUR(CHERCHE("@"; A1); "Pas d'email"). Au lieu d'une erreur, tu obtiens un message clair ou une valeur par défaut (comme 0 ou ""),
Résultat inattendu à cause de la non-sensibilité à la casse
Tu utilises CHERCHE mais tu obtiens des résultats inattendus parce que tu ne tiens pas compte du fait qu'elle ignore les majuscules. CHERCHE("excel"; "EXCEL") retourne 1, alors que TROUVE donnerait une erreur.
Solution : Si tu as besoin de distinguer majuscules et minuscules, utilise TROUVE à la place. Sinon, CHERCHE est généralement plus pratique car elle est plus permissive.
Erreur #VALEUR! avec un paramètre no_départ invalide
Si tu mets un no_départ supérieur à la longueur du texte (par exemple =CHERCHE("a"; "Excel"; 10) sur un texte de 5 caractères), ou un nombre négatif ou zéro, CHERCHE renvoie #VALEUR!.
Solution : Vérifie que ton no_départ est bien entre 1 et la longueur du texte. Utilise NBCAR pour calculer la longueur si nécessaire : =SI(CHERCHE(x; A1)<=NBCAR(A1); CHERCHE(x; A1); "introuvable").

CHERCHE vs TROUVE vs STXT vs GAUCHE vs DROITE
Prends CHERCHE quand la casse t'est égale ou que tu veux des jokers * et ? ; bascule sur TROUVE dès que distinguer majuscules et minuscules compte, car elle seule est sensible à la casse (et refuse les jokers). CHERCHE et TROUVE te donnent une position, jamais le texte : c'est STXT, GAUCHE ou DROITE qui font l'extraction une fois la position connue. GAUCHE et DROITE partent d'un bord fixe ; STXT démarre où tu veux, donc en plein milieu.
| Critère | CHERCHE | TROUVE | STXT | GAUCHE | DROITE |
|---|---|---|---|---|---|
| Fonction | Trouve position | Trouve position | Extrait texte | Extrait texte | Extrait texte |
| Sensible à la casse | ❌ Non | ✅ Oui | N/A | N/A | N/A |
| Caractères joker | ✅ Oui | ❌ Non | N/A | N/A | N/A |
| Position flexible | ✅ Oui | ✅ Oui | ✅ Oui | ❌ Début fixe | ❌ Fin fixe |
| Meilleur pour | Recherche générale | Recherche précise | Extraction milieu | Extraction début | Extraction fin |

Astuces avancées avec CHERCHE
Extraire ce qui est entre deux caractères
Pour extraire le texte entre parenthèses, combine deux CHERCHE : =STXT(A1; CHERCHE("("; A1)+1; CHERCHE(")"; A1)-CHERCHE("("; A1)-1). La première CHERCHE localise l'ouverture, la seconde l'accolade fermante, et STXT extrait exactement ce qui est dedans.
La même logique s'applique à tout délimiteur paire (crochets, chevrons, guillemets doubles).
Trouver la deuxième occurrence avec no_départ
CHERCHE trouve toujours la première occurrence. Pour la deuxième, imbrique deux CHERCHE : =CHERCHE("-"; A1; CHERCHE("-"; A1)+1). La CHERCHE intérieure trouve le premier tiret, +1 fait avancer d'une position, et la CHERCHE extérieure repart de là.
Cette technique se chaîne autant de fois que nécessaire pour atteindre la Nième occurrence.
Protéger la formule avec SIERREUR
Quand une liste comporte des entrées sans le caractère cherché (emails sans @, codes sans tiret), CHERCHE renvoie #VALEUR! qui se propage dans les calculs suivants. Enrober avec SIERREUR(...; "") ou SIERREUR(...; 0) absorbe silencieusement les absences.
Choisis 0 si le résultat de CHERCHE alimente un calcul arithmétique, "" si c'est une extraction de texte.
Questions fréquentes
CHERCHE n'est pas sensible à la casse : elle traite "excel", "Excel" et "EXCEL" de la même façon. TROUVE, elle, est sensible à la casse et distingue les majuscules des minuscules.
Utilise CHERCHE quand tu veux trouver un texte sans te soucier de la casse (c'est généralement plus pratique). Utilise TROUVE quand la casse compte, par exemple pour repérer une abréviation précise dans un texte.
Oui. CHERCHE accepte deux caractères joker : * (astérisque) pour remplacer n'importe quel nombre de caractères, et ? (point d'interrogation) pour remplacer un seul caractère.
Par exemple, =CHERCHE("ex*"; A1) trouvera "excel", "exemple", "expert", etc. TROUVE n'accepte pas les jokers, c'est l'une des principales différences entre les deux fonctions.
Si le texte cherché n'existe pas, CHERCHE retourne #VALEUR!. Pour gérer ce cas proprement, utilise SIERREUR : =SIERREUR(CHERCHE("@"; A1); "Email non valide").
Ainsi, tu obtiens un message personnalisé au lieu d'une erreur. Si tu veux une valeur numérique (pour un calcul ensuite), utilise 0 : =SIERREUR(CHERCHE("@"; A1); 0).
CHERCHE trouve toujours la première occurrence. Pour trouver la dernière, la technique classique consiste à imbriquer des CHERCHE successives en utilisant le paramètre no_départ.
Pour une approche plus robuste, tu peux utiliser SUBSTITUE pour remplacer la dernière occurrence par un caractère unique, puis chercher ce caractère avec CHERCHE ou TROUVE.
Oui, CHERCHE peut chercher des chiffres dans un texte. Par exemple, =CHERCHE("2"; "A2B3C4") retournera 2. Excel convertit automatiquement les nombres en texte pour la recherche.
C'est utile pour trouver des codes ou des numéros dans des chaînes mixtes, ou pour vérifier qu'un code commence bien par un chiffre précis.
Pour aller plus loin
Continue sur ta lancée après la fonction CHERCHE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.
Tout voir


