En bref —
FIND(français : TROUVE) etSEARCH(français : CHERCHE) ne découpent pas une chaîne — elles vous indiquent où commence un de ses morceaux, sous forme de nombre.FIND("@", A2)renvoie la position du@; vous fournissez ce nombre àMID/LEFTpour découper par contenu au lieu d'une fragile position codée en dur. Deux différences décident laquelle utiliser :FINDest sensible à la casse et n'accepte aucun caractère générique ;SEARCHignore la casse et accepte*et?. Et le piège qui fait rougir des colonnes entières : en l'absence de correspondance, les deux renvoient#VALUE!— jamais 0, jamais vide — alors enveloppez-les dansIFERRORou testez avecISNUMBER. Toutes les versions d'Excel.
=FIND("@", A2) ' position du @ (sensible à la casse, exacte)
=SEARCH("st", A2) ' position de "st"/"ST"/"St" (insensible à la casse)
=ISNUMBER(SEARCH("paid", A2)) ' VRAI si A2 contient "paid", quelle que soit la casse
FIND et SEARCH sont les fonctions que les gens utilisent le moins seules et
le plus à l'intérieur d'autres formules — et c'est précisément tout l'intérêt.
Ce sont le GPS qui rend l'extraction de texte fiable. Comprenez-les et la
fâcheuse habitude du RIGHT(A2, 4) fragile disparaît.
Ce que vous allez apprendre
- Pourquoi
FIND/SEARCHrenvoient une position, pas le texte — et quoi en faire - Les deux vraies différences : la sensibilité à la casse et les caractères génériques
- Pourquoi une correspondance manquante renvoie
#VALUE!, et les deux façons de la gérer - L'idiome
ISNUMBER(SEARCH(...))pour un test « est-ce que ça contient ? » propre - Utiliser le 3e argument pour trouver la deuxième occurrence
Le modèle mental : un détecteur de repère, pas un découpeur
LEFT, MID et RIGHT découpent. FIND et SEARCH localisent. Elles
répondent à une seule question — « à quelle position de caractère commence cette
sous-chaîne ? » — et renvoient un nombre. Pris isolément, ce nombre paraît inutile ;
son rôle est de devenir le start_num d'un MID ou l'argument de longueur d'un
LEFT :
' Obtenir le domaine d'un e-mail : tout ce qui suit le @
=MID(A2, FIND("@", A2) + 1, 99)
' Obtenir le prénom : tout ce qui précède le premier espace
=LEFT(A2, FIND(" ", A2) - 1)
C'est l'association qui transforme un découpage basé sur la position en un découpage basé sur le contenu. Vous arrêtez de dire « prends les caractères 1 à 5 » et vous commencez à dire « prends tout jusqu'à l'espace, où qu'il soit ». La découpe suit désormais les données au lieu d'en supposer la forme.
La règle qui débloque tout : FIND vs SEARCH, ce sont deux différences, pas une
Les gens retiennent « FIND est sensible à la casse » et oublient la seconde différence, tout aussi importante. Voici le tableau complet :
| Casse | Génériques (* ?) |
|
|---|---|---|
FIND |
Sensible — "a" ≠ "A" |
Non pris en charge (traité littéralement) |
SEARCH |
Insensible — "a" = "A" |
Pris en charge |
Donc :
=FIND("s", "Sales") ' 5 — le s minuscule ; le S majuscule est ignoré
=SEARCH("s", "Sales") ' 1 — correspond au S majuscule, casse ignorée
=SEARCH("a?c", A2) ' trouve "a", n'importe quel caractère, "c" — seul SEARCH fait ça
=FIND("a?c", A2) ' cherche le texte littéral "a?c"
Le choix à faire est simple : prenez FIND quand la casse compte ou quand votre
motif de recherche contient des caractères qui agiraient sinon comme des
génériques ; prenez SEARCH quand vous voulez une correspondance indulgente et
humaine. Pour « est-ce que cette cellule mentionne 'paid' dans n'importe quelle
graphie ? », SEARCH est le bon outil.
Le piège #VALUE! : une absence de correspondance est une erreur, pas un zéro
Voici le comportement qui surprend tout le monde. Quand la sous-chaîne n'est pas
là, FIND et SEARCH ne renvoient ni 0 ni chaîne vide — elles renvoient
#VALUE!. Glissez-en une dans une colonne où certaines lignes n'ont pas la
sous-chaîne et la colonne entière s'illumine de rouge, entraînant dans sa chute
toute formule qui la référence.
Deux correctifs propres, selon ce que vous faites :
' Extraction, mais certaines lignes n'ont peut-être pas le délimiteur :
=IFERROR(MID(A2, FIND("-", A2) + 1, 99), A2) ' repli sur la chaîne entière
' Simple test de présence — sans rien extraire :
=ISNUMBER(SEARCH("urgent", A2)) ' VRAI / FAUX, ne renvoie jamais d'erreur
Ce second idiome est celui à mémoriser. ISNUMBER(SEARCH(needle, haystack))
(français : ESTNUM) est la façon dont Excel réalise un test « contient »
insensible à la casse — associez-le à IF, FILTER ou à la mise en forme
conditionnelle pour signaler chaque ligne qui mentionne un mot. C'est plus propre
et plus rapide que n'importe quelle acrobatie avec les génériques de COUNTIF, et
ça ne renvoie jamais d'erreur.
Le 3e argument : trouver la deuxième occurrence
Les deux fonctions acceptent un start_num facultatif — la position à partir de
laquelle commencer la recherche. Son usage principal est de dépasser la première
correspondance pour trouver la suivante :
=FIND("-", A2) ' position du 1er trait d'union
=FIND("-", A2, FIND("-", A2) + 1) ' position du 2e trait d'union
Imbriquer ainsi pour atteindre la n-ième occurrence, c'est là que ces formules
cessent d'être lisibles. Si vous vous surprenez à compter les occurrences, c'est le
signal de passer à TEXTSPLIT (français :
FRACTIONNER.TEXTE — découper sur le délimiteur et prendre le morceau voulu) ou à
Power Query.
Le bon réflexe
FIND et SEARCH n'apparaissent presque jamais seules — si vous en utilisez une
isolément, vous voulez probablement le test de présence ISNUMBER(SEARCH())
plutôt qu'une position brute. Leur véritable place est à l'intérieur d'un
MID/LEFT/REPLACE (français : REMPLACER), où elles fournissent la position
pour que la découpe suive le contenu. Choisissez FIND pour une correspondance
exacte, sensible à la casse et littérale ; choisissez SEARCH pour une
correspondance indulgente, avec génériques et humaine. Et n'écrivez jamais l'une
ou l'autre sans décider de ce qui se passe en l'absence de correspondance —
#VALUE! n'est pas un « oups », c'est le comportement documenté. Quand
l'imbrication atteint trois niveaux, arrêtez et découpez plutôt la chaîne.
Comment ExcelMaster vous aide
Les domaines d'e-mail, le texte entre le deuxième et le troisième trait d'union, la
partie d'une adresse après la dernière virgule — ce sont des casse-têtes
FIND/SEARCH, et la partie délicate, ce sont les décalages +1/-1 et la
gestion de l'absence de correspondance. ExcelMaster écrit l'expression
complète à partir d'une description en français courant — les bons points
d'ancrage, la garde IFERROR ou ISNUMBER déjà en place, et le choix FIND vs
SEARCH selon vos besoins de sensibilité à la casse. Vous nommez le repère ; il
fait les calculs de position.
Foire aux questions
Quelle est la différence entre FIND et SEARCH dans Excel ?
Deux différences. FIND est sensible à la casse et traite */? comme des
caractères littéraux ; SEARCH ignore la casse et prend en charge ces caractères
génériques. Utilisez FIND pour des correspondances exactes et sensibles à la
casse, et SEARCH pour des correspondances indulgentes.
Pourquoi FIND renvoie-t-il #VALUE! ?
Parce que la sous-chaîne que vous cherchez n'est pas dans le texte. FIND et
SEARCH renvoient #VALUE! en l'absence de correspondance, plutôt que 0 ou vide.
Enveloppez la formule dans IFERROR(...) ou testez d'abord avec
ISNUMBER(SEARCH(...)).
Comment vérifier qu'une cellule contient un texte précis ?
Utilisez =ISNUMBER(SEARCH("word", A2)), qui renvoie VRAI ou FAUX et ignore la
casse. Pour une vérification sensible à la casse, remplacez SEARCH par FIND.
Cela ne renvoie jamais d'erreur, contrairement à l'usage direct de la position.
Comment trouver la deuxième occurrence d'un caractère ?
Passez le 3e argument facultatif (start_num) pour commencer la recherche après la
première correspondance : =FIND("-", A2, FIND("-", A2) + 1) renvoie la position
du deuxième trait d'union. Au-delà de la deuxième occurrence, envisagez
TEXTSPLIT pour la lisibilité.
FIND ou SEARCH prennent-ils en charge les caractères génériques ?
Seul SEARCH. SEARCH("a?c", A2) correspond à un « a », n'importe quel caractère
unique, puis un « c ». FIND traite ? et * comme des caractères littéraux à
trouver.
Testé dans
Testé dans : Excel 365 (Windows 11) — dernière vérification le 2026-06-29.
Guides associés : Excel LEFT, RIGHT et MID · Excel SUBSTITUTE et REPLACE · Excel TEXTSPLIT · Excel IFERROR
