Aller au contenu principal

Qu'est-ce que la fonction CHERCHE ?

Définition
La fonction CHERCHE retourne la position numérique de la première occurrence d'un texte dans une autre chaîne, sans tenir compte des majuscules ou minuscules. Elle accepte les caractères joker * et ?.

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

Clique sur un argument pour aller à son explication.

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

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.

1

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

2

texte

: c'est la chaîne de texte dans laquelle tu effectues la recherche

Gé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é.

3

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.

Le conseil du pro
CHERCHE accepte les caractères génériques, l'étoile et le point d'interrogation, ce que TROUVE ne permet pas. Pratique pour localiser un motif dont tu ne connais qu'une partie.
Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

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.

Les étapes
  1. 1
    Dans une cellule, écris =STXT(.
  2. 2
    En 1er argument : clique sur la cellule qui contient l'adresse email complète, D2. C'est le texte que la fonction va découper.
  3. 3
    En 2ᵉ argument : écris CHERCHE("@";D2)+1. La fonction CHERCHE renvoie la position de l'arobase, 13 sur la première ligne, et le +1 fait démarrer juste après elle ; sans ce décalage, l'extraction emporterait l'arobase avec le domaine.
  4. 4
    En 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.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=STXT(D2;CHERCHE("@";D2)+1;100)
Explication
Le @ 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 @.
Exemple 2

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.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 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 que URGENT et Urgent sont attrapés aussi ; comme elle renvoie une erreur quand le mot est absent, la fonction SIERREUR ramène ce cas à 0 et la comparaison >0 sépare enfin les deux situations.
  3. 3
    En 2ᵉ argument : écris "Prioritaire", la mention des messages qui contiennent le mot.
  4. 4
    En 3ᵉ argument : écris "Standard", qui couvre tous les autres.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=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.

Exemple 3

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.

Les étapes
  1. 1
    Dans une cellule, écris =GAUCHE(.
  2. 2
    En 1er argument : clique sur la cellule qui contient le code produit complet, A2.
  3. 3
    En 2ᵉ argument : écris CHERCHE("-";A2)-1. La fonction CHERCHE renvoie la position du tiret, 5 pour ELEC-1245, et le -1 fait s'arrêter juste avant lui ; sans ce retrait, le résultat serait ELEC- avec le séparateur collé au bout.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=GAUCHE(A2;CHERCHE("-";A2)-1)
Exemple 4

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.

Les étapes
  1. 1
    Dans une cellule, écris =STXT(.
  2. 2
    En 1er argument : clique sur la cellule qui contient la référence complète, A2.
  3. 3
    En 2ᵉ argument : écris CHERCHE("-";A2)+1, le caractère qui suit le premier tiret. La famille de produit commence exactement là.
  4. 4
    En 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 renvoyer 8 au lieu de 3, et la soustraction 8-3-1 donne 4, le nombre de caractères entre les deux tirets.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
En mettant tout bout à bout, tu écris :=STXT(A2;CHERCHE("-";A2)+1;CHERCHE("-";A2;CHERCHE("-";A2)+1)-CHERCHE("-";A2)-1)
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

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").

Lucas, la mascotte du Dojo, compare deux fonctions Excel

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èreCHERCHETROUVESTXTGAUCHEDROITE
FonctionTrouve positionTrouve positionExtrait texteExtrait texteExtrait texte
Sensible à la casse❌ Non✅ OuiN/AN/AN/A
Caractères joker✅ Oui❌ NonN/AN/AN/A
Position flexible✅ Oui✅ Oui✅ Oui❌ Début fixe❌ Fin fixe
Meilleur pourRecherche généraleRecherche préciseExtraction milieuExtraction débutExtraction fin
Le savais-tu ?
CHERCHE ne fait pas la différence entre majuscules et minuscules, alors que TROUVE, elle, en tient compte. Pour repérer « paris » quelle que soit sa casse, CHERCHE est le bon choix.
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec CHERCHE

1Astuce

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

2Astuce

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.

3Astuce

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.

FAQ

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.

Ressources

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