Menu

TROUVE et CHERCHE Excel : trouver un texte dans une cellule

=CHERCHE("apple";A2) renvoie la position à laquelle apple commence dans A2, sans tenir compte de la casse. TROUVE fait la même chose mais respecte la casse. Les deux renvoient #VALEUR! quand le texte est absent, ce que ESTNUM transforme en test "si la cellule contient".

Chaque feuille de cette page est interactive : modifiez un nombre ou une formule et elle se recalcule.

=CHERCHE("apple";A2) renvoie la position à laquelle apple commence dans A2, en comptant à partir de 1, sans tenir compte des majuscules et des minuscules. =TROUVE("apple";A2) fait la même chose mais ne trouve que la casse exacte. Quand le texte est absent, les deux renvoient #VALEUR! (#VALUE! en anglais ; le tableau affiche les noms d'erreur anglais). Dans un Excel anglais, ces fonctions s'appellent SEARCH et FIND ; le tableau affiche les formules sous cette forme anglaise, avec des virgules, mais vous pouvez aussi les taper comme dans un Excel français, avec des points-virgules : =CHERCHE("apple";A2).

TROUVE respecte la casse, CHERCHE non
B2
ABC
1TextFIND("apple")SEARCH("apple")
2Apple pie#VALUE!1
3Green apple77
4Banana bread#VALUE!#VALUE!
#VALUE! Un argument n’a pas le bon type, par exemple du texte à la place d’un nombre.Dans Excel en français : =TROUVE("apple";A2)

Apple pie commence par un A majuscule, donc TROUVE ne trouve rien et renvoie #VALEUR!, tandis que CHERCHE renvoie 1. Dans Green apple, les deux renvoient 7 : l'espace compte comme un caractère. Banana bread ne contient pas du tout apple.

Syntaxe

=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
  • find_text (texte_cherché) : ce que vous cherchez. Un caractère ou un mot.
  • within_text (texte) : la cellule dans laquelle chercher.
  • start_num (no_départ) : la position de départ, 1 s'il est omis. Le résultat compte toujours à partir du premier caractère de la cellule.

Si la cellule contient un texte

La position elle-même est rarement ce que vous voulez. En général, la question est "cette cellule contient-elle le mot ?". Une position est un nombre et un échec est une erreur, donc ESTNUM transforme le résultat en VRAI ou FAUX :

La note signale-t-elle un retard ?
B2
ABC
1NoteContains "late"Status
2Arrived lateTRUECheck
3On timeFALSEOK
4LATE by 2 daysTRUECheck
5DeliveredFALSEOK
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =ESTNUM(CHERCHE("late";A2))

CHERCHE trouve LATE en A4 parce qu'elle ignore la casse. Notez qu'elle trouverait aussi latest ou chocolate : CHERCHE cherche des caractères, pas des mots entiers. Chercher " late" avec une espace devant restreint un peu les résultats. Pour compter les cellules qui contiennent un mot, =NB.SI(A2:A5;"*late*") est plus court ; voir compter les cellules contenant du texte.

Signaler les tickets urgents
B2
AB
1SubjectUrgent?
2URGENT: server down
3Monthly report
4Refund request, urgent
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : En B2, renvoyez VRAI si l'objet en A2 contient le mot urgent, quelle que soit la casse, et FAUX sinon. La formule est recopiée jusqu'en B4.

Trouver la deuxième occurrence

start_num permet de commencer à chercher après la première correspondance. Placez un TROUVE dans un autre : celui de l'intérieur trouve le premier tiret, et celui de l'extérieur commence un caractère plus loin.

Position du premier et du deuxième tiret
C2
ABC
1CodeFirst dashSecond dash
2NYC-2041-B49
3BOSTON-15-AA710
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =TROUVE("-";A2;TROUVE("-";A2)+1)

Avec les deux positions, STXT peut prendre ce qui se trouve entre les tirets : =STXT(A2;B2+1;C2-B2-1) renvoie 2041.

Où est le @ ?
B2
AB
1EmailPosition
2ana@coddy.tech
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.

À vous : En B2, renvoyez la position du @ dans l'adresse e-mail.

TROUVE et CHERCHE renvoient #VALEUR!

Ici, #VALEUR! veut seulement dire "introuvable". Remplacez-le par quelque chose d'utile :

Introuvable, sans l'erreur
B2
AB
1EmailPosition of @
2ana@coddy.tech4
3not an email0
Cliquez sur une cellule pour voir sa formule. Modifiez un nombre ou une formule et la feuille se recalcule.Dans Excel en français : =SIERREUR(TROUVE("@";A2);0)

Ne comparez pas le résultat brut à un nombre, comme dans =TROUVE("@";A2)>0 : un échec est une erreur, et la comparaison renvoie #VALEUR! au lieu de FAUX. Testez-le avec ESTNUM, comme dans la section ci-dessus.

Caractères génériques : seulement avec CHERCHE

CHERCHE accepte les caractères génériques ? (un caractère quelconque) et * (une suite quelconque de caractères). TROUVE les traite comme des caractères ordinaires. Dans Excel :

=SEARCH("b?d","a bad day")     returns 3
=SEARCH("2*B","NYC-2041-B")    returns 5
=SEARCH("~?","Why?")           returns 4, the tilde means a real question mark
=FIND("?","Why?")              returns 4, FIND has no wildcards

Dans un Excel français, la première s'écrit =CHERCHE("b?d";"a bad day"). Pour en savoir plus sur *, ? et ~ dans les fonctions Excel, voir la page sur les caractères génériques.

TROUVE, CHERCHE ou Ctrl+F

TROUVECHERCHECtrl+F
CasseDoit correspondreIgnoréeIgnorée, sauf si Respecter la casse est coché
Caractères génériquesNon?, *, ~?, *, ~
Introuvable#VALEUR!#VALEUR!Un message
RésultatUne position, recalculéeUne position, recalculéeSélectionne la cellule

Pour localiser une valeur une seule fois, Accueil > Rechercher et sélectionner > Rechercher (Ctrl+F, Cmd+F sur un Mac) est plus rapide qu'une formule. Pour signaler ou extraire sur chaque ligne, avec une mise à jour automatique, utilisez TROUVE ou CHERCHE. Choisissez TROUVE quand la casse a un sens (des codes produits comme ab et AB), CHERCHE pour tout ce que des gens tapent.

Questions fréquentes

Quelle est la différence entre TROUVE et CHERCHE dans Excel ?

TROUVE respecte la casse et n'accepte pas les caractères génériques. CHERCHE ignore la casse et accepte ? et *. =TROUVE("a";"Apple") donne #VALEUR!, tandis que =CHERCHE("a";"Apple") donne 1.

Comment extraire le texte entre deux tirets dans Excel ?

Trouvez les deux tirets et prenez ce qui se trouve entre eux avec STXT : =STXT(A2;TROUVE("-";A2)+1;TROUVE("-";A2;TROUVE("-";A2)+1)-TROUVE("-";A2)-1) renvoie 2041 à partir de NYC-2041-B. Dans Microsoft 365, =TEXTE.AVANT(TEXTE.APRES(A2;"-");"-") est plus court.

Pourquoi TROUVE renvoie-t-elle #VALEUR! ?

Le texte n'est pas dans la cellule, ou il y est avec d'autres majuscules (TROUVE respecte la casse). Entourez-la pour renvoyer autre chose : =SIERREUR(TROUVE("-";A2);0).

Comment trouver la deuxième occurrence d'un caractère ?

Commencez la recherche un caractère après la première correspondance : =TROUVE("-";A2;TROUVE("-";A2)+1). Le troisième argument est la position de départ.

Illustration des langages de programmation de Coddy

Apprendre à coder avec Coddy

COMMENCER