Aller au contenu principal

Qu'est-ce que la fonction TROUVE ?

Définition
La fonction TROUVE retourne la position du premier caractère de texte_cherché dans texte, en respectant la casse. Si le texte n'est pas trouvé, elle retourne l'erreur #VALEUR!.

TROUVE (FIND en anglais) te sert quand tu dois localiser un repère avant de découper ou de contrôler un texte, et que la casse doit être respectée à la lettre : un mot de passe, un code strict, un format imposé. Elle ne renvoie pas le morceau de texte lui-même, seulement sa position, à combiner ensuite avec GAUCHE, DROITE ou STXT.

Concrètement, TROUVE te sert à extraire le domaine après le @ d'une adresse email, à isoler la catégorie avant le premier tiret d'une référence produit, à vérifier la présence d'une majuscule dans un mot de passe, ou à découper un identifiant géographique entre ses séparateurs.

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 TROUVE

TROUVE attend ses arguments dans cet ordre : d'abord ce que tu cherches, ensuite la chaîne où chercher, et seulement à la fin la position de départ. Ce dernier, [no_départ], est le seul facultatif : sans lui, la recherche démarre au premier caractère, et tu n'y touches que pour aller pêcher une deuxième occurrence.

1

texte_cherché

: le texte ou caractère que tu cherches

Ça peut être un caractère simple comme "@", un mot comme "Excel", ou une référence de cellule. Attention : TROUVE est sensible à la casse, donc "Excel" et "excel" donneront des résultats différents.

Tu peux aussi utiliser les caractères joker ? (un seul caractère) et * (plusieurs caractères). Pour chercher littéralement un ? ou un *, fais-le précéder du tilde ~.

2

texte

: la chaîne de texte dans laquelle tu cherches

C'est généralement une référence de cellule comme A1, mais ça peut aussi être du texte direct entre guillemets comme "contact@example.com". TROUVE scanne ce texte de gauche à droite pour trouver la première occurrence de texte_cherché.

3

[no_départ]

: la position à partir de laquelle commencer la recherche(facultatif)

Par défaut, TROUVE commence au premier caractère (position 1). Si tu mets 5, elle ignorera les 4 premiers caractères et commencera la recherche au 5ème.

C'est très utile pour trouver la deuxième ou troisième occurrence d'un caractère : trouve d'abord la première, puis cherche à nouveau à partir de cette position +1.

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 position d'un caractère dans un texte avec la fonction TROUVE

Un export de l'annuaire interne arrive avec les adresses email en vrac et tu dois séparer les comptes internes des comptes externes, ce qui suppose de savoir où commence le domaine dans chaque adresse. La colonne Email contient m.dupont@dojo.fr, k.benali@dojo.fr et une centaine d'autres, et l'objectif est de repérer le @ de chacune sans les compter à la main.

C'est le travail de TROUVE : elle cherche un texte à l'intérieur d'un autre et renvoie sa position, ici 9 parce que le @ est le 9e caractère. Elle compare à la lettre près, majuscules comprises, et prend les jokers au pied de la lettre.

Les étapes
  1. 1
    Dans une cellule, écris =TROUVE(.
  2. 2
    En 1er argument : saisis le caractère à repérer, "@". Les guillemets sont obligatoires pour que TROUVE le lise comme un texte à chercher. La casse compte, donc "a" et "A" seraient deux recherches distinctes, et les jokers ? et * sont pris tels quels au lieu de remplacer des caractères.
  3. 3
    En 2ᵉ argument : clique sur la cellule à parcourir, D2. TROUVE lit m.dupont@dojo.fr de gauche à droite, s'arrête au premier @ et renvoie 9. Si le caractère cherché est absent, elle renvoie une erreur plutôt qu'un zéro.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Au final, ta formule devrait ressembler à ça :=TROUVE("@";D2)
Explication
Le résultat est 9 : dans m.dupont@dojo.fr, le @ occupe la 9e place. TROUVE ne renvoie jamais un morceau de texte, seulement un numéro de position, que tu réutilises ensuite dans GAUCHE, DROITE ou STXT pour découper.
Exemple 2

Comment extraire le début d'une référence avant un tiret avec GAUCHE et la fonction TROUVE

Le catalogue empile des références au format CATEG-SOUSCATEG-ID et les filtres de la boutique ne peuvent pas être générés tant que la catégorie principale reste collée au reste du code. Les catégories n'ont pas toutes la même longueur : ELEC en compte quatre, SPORT en compte cinq, donc couper à un nombre fixe de caractères abîmerait une ligne sur deux.

TROUVE donne la position du premier tiret et GAUCHE s'arrête juste avant. La longueur du découpage devient calculée par la formule au lieu d'être écrite en dur.

Les étapes
  1. 1
    Dans une cellule, écris =GAUCHE(.
  2. 2
    En 1er argument : clique sur la référence à découper, A2, qui contient ELEC-PHONE-12345. GAUCHE renvoie ses tout premiers caractères, et c'est le second argument qui décide combien.
  3. 3
    En 2ᵉ argument : écris le nombre de caractères à garder, TROUVE("-";A2)-1. Le TROUVE y repère le premier tiret et renvoie 5, puis le -1 retire ce tiret du découpage, sinon tu récupérerais ELEC- avec le séparateur collé au bout.
  4. 4
    Ferme la parenthèse et appuie sur Entrée.
Voici la formule que tu obtiens à la fin :=GAUCHE(A2;TROUVE("-";A2)-1)
Explication
TROUVE("-";A2) renvoie 5, la place du premier tiret. On retire 1 pour s'arrêter juste avant, et GAUCHE garde les 4 premiers caractères, soit ELEC. Comme la position est recalculée sur chaque ligne, SPORT et ses 5 lettres sortent aussi bien que ELEC.
Exemple 3

Comment isoler un texte entre deux séparateurs avec l'argument no_départ de la fonction TROUVE

Les codes géographiques arrivent au format PAYS_REGION_VILLE et l'analyse par région ne peut pas démarrer tant que le code région reste noyé au milieu de la chaîne. Il faut la portion située entre le premier et le second underscore, sachant que IDF et PACA n'ont pas la même longueur et que les noms de villes non plus.

Deux TROUVE suffisent : le premier situe l'underscore d'ouverture, le second redémarre après lui grâce à no_départ pour situer celui de fermeture. STXT découpe entre les deux positions.

Les étapes
  1. 1
    Dans une cellule, écris =STXT(.
  2. 2
    En 1er argument : clique sur la cellule à découper, A2, qui contient FR_IDF_PARIS. STXT en extrait une portion, à condition qu'on lui donne ensuite où commencer et combien de caractères prendre.
  3. 3
    En 2ᵉ argument : écris la position de départ, TROUVE("_";A2)+1. Le TROUVE renvoie 3, la place du premier underscore, et le +1 fait démarrer l'extraction juste après lui, sur le premier caractère de la région.
  4. 4
    En 3ᵉ argument : écris le nombre de caractères à extraire, TROUVE("_";A2;TROUVE("_";A2)+1)-TROUVE("_";A2)-1. Le premier TROUVE repart de la position 4 et trouve l'underscore de fermeture en 7, une position toujours comptée depuis le début de la chaîne. Le calcul 7 - 3 - 1 laisse les 3 lettres de IDF entre les deux séparateurs.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
Une fois les morceaux assemblés, ta formule donne ça :=STXT(A2;TROUVE("_";A2)+1;TROUVE("_";A2;TROUVE("_";A2)+1)-TROUVE("_";A2)-1)
Explication
Le premier TROUVE renvoie 3, la place de l'underscore d'ouverture. Le second repart de la position 4 et renvoie 7, celle de l'underscore de fermeture. Le calcul 7 - 3 - 1 donne 3 caractères à extraire à partir de la position 4, soit IDF.
Exemple 4

Comment contrôler la casse exacte d'une saisie avec la fonction TROUVE

L'outil d'import n'accepte les codes que si leur préfixe est écrit REF en majuscules, et le fichier reçu du fournisseur contient des ref et des Ref qui feront échouer le chargement complet. Il faut repérer les lignes fautives avant l'envoi, sur plusieurs milliers de codes que personne ne relira un par un.

C'est là que TROUVE se distingue : elle est sensible à la casse, donc ref et Ref ne correspondent pas à "REF" et déclenchent une erreur, que SI transforme en À corriger. Si tu veux au contraire ignorer la casse ou utiliser les jokers ? et * dans ta recherche, c'est CHERCHE qu'il faut appeler : c'est la seule vraie différence entre les deux fonctions.

Les étapes
  1. 1
    Dans une cellule, écris =SI(.
  2. 2
    En 1er argument : écris le test qui vérifie le préfixe, ESTNUM(TROUVE("REF";A2)). TROUVE cherche REF en majuscules dans A2 et renvoie une position quand il y est, une erreur sinon, tandis qu'ESTNUM traduit cette réponse en VRAI ou FAUX. Comme TROUVE compare à la casse, ni le préfixe de ref-2026-002 ni celui de Ref-2026-004 ne passent le test.
  3. 3
    En 2ᵉ argument : écris la mention à afficher quand le test est vrai, "Conforme". Les guillemets sont obligatoires pour que SI renvoie ce mot tel quel.
  4. 4
    En 3ᵉ argument : écris la mention affichée dans le cas contraire, "À corriger". C'est elle qui signale les lignes dont le préfixe n'est pas en majuscules, celles que TROUVE fait échouer.
  5. 5
    Ferme la parenthèse et appuie sur Entrée.
En mettant tout bout à bout, tu écris :=SI(ESTNUM(TROUVE("REF";A2));"Conforme";"À corriger")
Explication
TROUVE("REF";A2) renvoie 1 sur REF-2026-001 et une erreur sur ref-2026-002, parce que le préfixe en minuscules ne correspond pas au texte cherché. ESTNUM traduit ça en VRAI ou FAUX, et SI affiche le verdict à la place du code d'erreur.
Le combo gagnant
Le combo gagnant : TROUVE localise un séparateur, puis STXT (ou GAUCHE et DROITE) extrait ce qui l'entoure. TROUVE(« @ »; A2)+1 donne le début du domaine et STXT récupère la suite : tu isoles le domaine d'un email quelle que soit la longueur de la partie avant l'arobase.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction TROUVE

Neuf fois sur dix, c'est #VALEUR! qui s'affiche, et le coupable est presque toujours la casse : TROUVE cherche "PDF" à la lettre et ne le voit pas dans "document.pdf". Les autres pièges viennent du no_départ (qui renvoie une position absolue, jamais relative) et des jokers ? et * interprétés au lieu d'être cherchés tels quels.

Erreur #VALEUR! – Texte cherché absent ou casse incorrecte

L'erreur la plus courante avec TROUVE : le texte cherché n'existe pas dans la chaîne, ou la casse ne correspond pas. Si tu cherches "Excel" dans "excel formation", TROUVE retournera #VALEUR! car le E majuscule n'est pas trouvé.

Solution : Enveloppe TROUVE dans SIERREUR pour gérer l'absence : =SIERREUR(TROUVE("@";A1); "Pas d'arobase"). Ou utilise CHERCHE si la casse n'a pas d'importance pour ton cas.

Confusion majuscule/minuscule entre TROUVE et CHERCHE

Beaucoup d'utilisateurs ne réalisent pas que TROUVE est sensible à la casse. Chercher "PDF" dans "document.pdf" retourne #VALEUR! car "PDF" ne correspond pas à "pdf".

Solution : Si la casse n'a pas d'importance, utilise CHERCHE. Sinon, normalise d'abord le texte : =TROUVE("PDF"; MAJUSCULE(A1)) trouvera "pdf", "PDF" ou "Pdf" indifféremment.

Mauvais calcul quand no_départ est utilisé

Quand tu utilises no_départ, TROUVE retourne toujours la position depuis le début du texte, pas depuis no_départ. C'est une source de confusion fréquente quand on calcule des décalages.

Solution : Vérifie ta logique. Si le premier tiret est en position 5 et que tu cherches le deuxième avec =TROUVE("-";A1;6), le résultat est la position absolue du deuxième tiret (ex : 12), pas 7.

Caractère joker interprété à la place d'un littéral

Si tu cherches littéralement un ? ou un *, TROUVE les interprète comme des caractères joker et le comportement est inattendu.

Solution : Fais précéder le caractère joker du tilde ~ : =TROUVE("~?";A1) cherche littéralement le caractère ?. Idem pour ~* pour chercher un astérisque.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

TROUVE vs CHERCHE vs EXACT

Prends TROUVE quand la casse compte et que tu veux la position d'un caractère : codes produits, mots de passe, séparateurs à découper. Passe à CHERCHE dès que les majuscules t'indiffèrent ou que tu as besoin des jokers dans du texte libre. Et si tu ne cherches pas une position mais veux juste savoir si deux textes sont rigoureusement identiques, c'est EXACT qu'il te faut, pas TROUVE.

CritèreTROUVECHERCHEEXACT
Sensible à la casseOuiNonOui
Retourne une positionOui (nombre)Oui (nombre)Non (VRAI/FAUX)
Cherche dans le texteOuiOuiNon, compare tout
Argument no_départOuiOuiNon
Cas d'usage principalCodes stricts, mots de passeRecherche souple dans texte libreComparer deux textes complets
Le savais-tu ?
TROUVE est sensible à la casse, c'est ce qui la sépare de CHERCHE : chercher « PDF » dans « document.pdf » renvoie #VALEUR!, car « PDF » ne correspond pas à « pdf ». Quand la casse t'indiffère, prends CHERCHE.
Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec TROUVE

1Astuce

Trouver la dernière occurrence d'un caractère

TROUVE ne trouve que la première occurrence. Pour trouver la dernière (utile pour extraire l'extension d'un fichier par exemple), combines SUBSTITUE et CHERCHE : remplace le dernier . par un caractère rare (~), puis localise ce ~. La formule est : =CHERCHE("~";SUBSTITUE(A1;".";"~";NBCAR(A1)-NBCAR(SUBSTITUE(A1;".";"")))). NBCAR calcule combien de points sont présents, et SUBSTITUE remplace uniquement le dernier.
À partir de cette position, DROITE ou STXT extrait l'extension.

2Astuce

Tester la présence avant d'extraire

Avant d'utiliser TROUVE pour extraire, vérifie toujours que le caractère existe pour éviter #VALEUR! sur les lignes qui n'ont pas le format attendu : =SI(ESTERREUR(TROUVE("@";A1)); "Email invalide"; STXT(A1; TROUVE("@";A1)+1; 99)). Ton tableau reste propre même si certaines cellules ne respectent pas le format.
Cette vérification préalable est systématique dans les pipelines de nettoyage de données.

3Astuce

Compter les occurrences d'un caractère sans boucle

Pour compter combien de fois un caractère apparaît dans une cellule, utilise la formule NBCAR(A1)-NBCAR(SUBSTITUE(A1;"@";"")) : on soustrait la longueur sans le caractère de la longueur totale. Très utile pour valider qu'une adresse email contient exactement un arobase.
FAIRE cette vérification avant d'extraire avec TROUVE évite des résultats inattendus sur des données malformées.

4Astuce

Valider une casse précise avec TROUVE

Pour vérifier qu'un texte contient exactement "Excel" (pas "excel" ni "EXCEL"), utilise =NON(ESTERREUR(TROUVE("Excel";A1))) : retourne VRAI uniquement si la casse correspond. C'est la combinaison la plus simple pour une détection sensible à la casse sans formule matricielle.
Combine avec SI pour afficher un message de validation : =SI(NON(ESTERREUR(TROUVE("Excel";A1)));"Valide";"Casse incorrecte").

FAQ

Questions fréquentes

TROUVE est sensible à la casse : elle fait la différence entre majuscules et minuscules (A diffère de a). CHERCHE, elle, ne fait pas cette distinction. Utilise TROUVE quand la casse est importante, par exemple pour valider des codes produits ou des mots de passe.

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction TROUVE : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir