Comment faire une formule Excel SI contient une partie du texte
Tu ouvres un fichier RH ou finance. Les libellés sont sales, les commentaires libres partent dans tous les sens, et ton manager veut “juste” repérer toutes les lignes qui contiennent un mot précis. “Urgent”. “Facture fournisseur”. “Manager”. “Litige”. Sur le papier, c’est simple. Dans Excel, ça devient vite pénible.
Le problème, c’est que CTRL+F ne suffit pas. Il trouve, oui. Mais il ne classe pas, il ne teste pas ligne par ligne, il n’alimente pas une colonne de contrôle, il ne te permet pas d’automatiser un reporting. Et quand tu dois travailler sur des libellés variables, avec des fautes, des accents, ou plusieurs mots-clés, la recherche manuelle te ralentit immédiatement.
La logique excel si contient sert précisément à ça. Tu poses une question à Excel. “Si cette cellule contient tel texte, alors affiche Oui, classe en catégorie, surligne la ligne, ou renvoie l’enregistrement.” C’est une brique simple, mais redoutable dans la vraie vie.
Elle sert partout. En contrôle de gestion pour repérer des dépenses liées à un projet. En RH pour isoler des intitulés de poste. En comptabilité pour filtrer des libellés de factures ou d’avoirs. Et quand tu maîtrises bien cette logique, tu gagnes surtout en fiabilité. Tu arrêtes de bricoler. Tu construis des règles propres.
Introduction : le casse-tête de la recherche de texte dans Excel
Tu as sans doute déjà vécu cette scène. Une extraction ERP arrive avec des centaines, parfois des milliers de lignes. Dans la colonne “Libellé”, tu vois un mélange de texte libre, d’abréviations internes, de références fournisseur et de commentaires saisis à la volée.
Tu dois identifier les lignes qui contiennent un mot clé. Pas forcément un texte exact. Juste une présence. C’est là que beaucoup d’utilisateurs se bloquent, parce qu’ils cherchent une fonction imaginaire du type SI(CONTIENT(...)). Cette fonction n’existe pas telle quelle dans Excel.
La bonne nouvelle, c’est qu’Excel sait très bien faire ce travail. Il faut simplement combiner les bonnes fonctions.
Ce que tu veux vraiment faire
Dans la plupart des cas métier, tu cherches à répondre à une de ces questions :
- Classifier une ligne si un mot apparaît dans une cellule
- Vérifier la présence d’un texte dans un commentaire ou un libellé
- Filtrer des enregistrements contenant un terme
- Alerter visuellement quand une mention sensible est détectée
Un exemple concret. En RH, tu veux taguer tous les intitulés qui contiennent “manager”. En comptabilité, tu veux reconnaître les écritures qui contiennent “TVA”. En ADV, tu veux faire ressortir les messages contenant “urgent”.
Le vrai gain n’est pas de “trouver” du texte. C’est de transformer cette détection en action Excel exploitable.
La logique à retenir
La formule excel si contient repose toujours sur le même principe :
- Tester si un texte est présent
- Transformer ce test en VRAI/FAUX ou Oui/Non
- Exploiter le résultat dans un calcul, un filtre ou une mise en forme
Tu vas voir plusieurs méthodes. Certaines sont parfaites pour aller vite. D’autres sont plus fines. Et pour les cas francophones avec accents ou caractères spéciaux, il faut parfois aller au-delà des fonctions natives.
Vérifier si une cellule contient une partie du texte avec NB.SI
Si tu veux une solution rapide, lisible et facile à déployer, commence par NB.SI. C’est souvent la meilleure porte d’entrée pour excel si contient.

Pourquoi NB.SI marche si bien
NB.SI sert normalement à compter les cellules qui respectent un critère. Mais avec les caractères jokers, tu peux lui demander de détecter un texte inclus dans une cellule.
Le joker le plus utile ici est *.
Il signifie “n’importe quelle suite de caractères”. Donc :
"*manager*"
veut dire : “le mot manager peut apparaître n’importe où dans la cellule”.
La formule de base
Si ta donnée est en A2, tu peux écrire :
=SI(NB.SI(A2;"*manager*")>0;"Oui";"Non")
Si A2 contient “Senior Manager RH”, Excel renvoie “Oui”.
Si A2 contient “Assistant paie”, Excel renvoie “Non”.
Les étapes à suivre
Choisis la cellule à analyser
Exemple :A2Définis le mot-clé entre jokers
Exemple :"*manager*"Teste le résultat de NB.SI
Si le résultat est supérieur à 0, le texte existeEncadre avec SI pour rendre le résultat lisible
Oui / Non, ou toute autre sortie métier
Exemples concrets en entreprise
| Cas métier | Formule |
|---|---|
| RH, repérer les postes de manager | =SI(NB.SI(A2;"*manager*")>0;"Oui";"Non") |
| Finance, détecter les libellés avec TVA | =SI(NB.SI(B2;"*TVA*")>0;"À contrôler";"RAS") |
| Service client, marquer les messages urgents | =SI(NB.SI(C2;"*urgent*")>0;"Priorité haute";"Standard") |
Si tu veux approfondir la logique de NB.SI, tu peux consulter notre fiche dédiée à la fonction NB.SI.
Ce que cette méthode fait bien
- Rapide à écrire
- Facile à comprendre pour une équipe
- Pratique pour des contrôles simples
- Très bonne pour les colonnes d’aide
Ce qu’elle fait moins bien
Cette méthode reste limitée sur certains points :
- La casse n’est pas ton terrain de précision
- Les recherches complexes deviennent vite lourdes
- Les accents peuvent poser des problèmes selon la qualité des données
- Le raisonnement multi-critères demande d’autres techniques
Règle pratique
UtiliseNB.SIquand tu veux une détection simple, robuste et rapide à maintenir par d’autres utilisateurs.
Astuce bonus sur les jokers
Tu n’es pas limité à *.
Tu peux aussi utiliser ?, qui remplace un seul caractère. C’est utile si tu cherches un motif approximatif dans certains codes internes, même si en pratique, pour excel si contient, *texte* reste la forme la plus fréquente.
Gagner en précision avec CHERCHE et TROUVE
Quand NB.SI devient trop large, passe à CHERCHE ou TROUVE. Là, tu n’es plus dans le simple comptage. Tu demandes à Excel où commence le texte trouvé dans la cellule.

Si le texte existe, Excel renvoie une position. Si le texte n’existe pas, Excel renvoie une erreur. C’est précisément ce comportement qui devient utile.
La formule standard
La formule la plus courante est :
=SI(ESTNUM(CHERCHE("texte";A2));"Oui";"Non")
Pourquoi ça marche :
CHERCHE("texte";A2)renvoie un nombre si le texte est trouvéESTNUM(...)vérifie si le résultat est bien un nombreSI(...)transforme le tout en message lisible
Exemple finance
Tu veux détecter les libellés contenant “fournisseur” dans B2 :
=SI(ESTNUM(CHERCHE("fournisseur";B2));"Charge fournisseur";"Autre")
Exemple RH
Tu analyses des commentaires d’entretien et tu veux isoler ceux qui contiennent “mobilité” :
=SI(ESTNUM(CHERCHE("mobilité";C2));"À revoir";"OK")
CHERCHE ou TROUVE
Les deux fonctions se ressemblent, mais elles ne servent pas au même niveau d’exigence.
| Fonction | Sensible à la casse ? | Gère les jokers (*, ?) | Cas d’usage principal |
|---|---|---|---|
| CHERCHE | Non | Oui | Recherche générale de texte |
| TROUVE | Oui | Non | Vérification précise avec respect des majuscules |
Tu peux aussi consulter cette ressource dédiée à la fonction CHERCHE.
Quand utiliser CHERCHE
Choisis CHERCHE si :
- tu veux ignorer les majuscules/minuscules
- tes données viennent de plusieurs utilisateurs
- les règles de saisie ne sont pas homogènes
Exemple :
=SI(ESTNUM(CHERCHE("comptant";A2));"Oui";"Non")
Cette formule détectera aussi bien “COMPTANT” que “comptant”.
Quand utiliser TROUVE
Choisis TROUVE si :
- la casse a un sens métier
- tu distingues des codes ou libellés stricts
- tu fais un contrôle plus fin sur la qualité des données
Exemple :
=SI(ESTNUM(TROUVE("COMPTANT";A2));"Oui";"Non")
Ici, “comptant” en minuscules ne passera pas.
Si tu travailles avec des identifiants, des statuts codifiés ou des conventions de nommage strictes,
TROUVEest souvent plus sûr queCHERCHE.
Ce qui fonctionne bien dans la pratique
Dans un service finance, CHERCHE est souvent la meilleure option pour des libellés bancaires ou comptables, parce que la saisie varie énormément.
Dans un contexte de contrôle qualité ou de fichiers normés, TROUVE devient plus intéressant, car tu évites les faux positifs.
Le vrai arbitrage
Le sujet n’est pas “quelle fonction est la meilleure”. Le sujet est “de quel niveau de précision as-tu besoin”.
Voici mon repère simple :
- Besoin souple :
CHERCHE - Besoin strict :
TROUVE - Besoin très simple :
NB.SI
Piège classique à éviter
Beaucoup d’utilisateurs testent directement :
=SI(CHERCHE("texte";A2);"Oui";"Non")
Le problème, c’est que CHERCHE ne renvoie pas VRAI ou FAUX. Elle renvoie une position ou une erreur. Il faut donc presque toujours passer par ESTNUM.
Variante utile avec VRAI/FAUX
Si tu n’as pas besoin d’afficher un texte, garde une sortie logique :
=ESTNUM(CHERCHE("urgent";A2))
C’est très pratique pour :
- alimenter un
FILTRE - faire une mise en forme conditionnelle
- construire des tests combinés plus loin
Gérer plusieurs textes à la fois : les techniques OU et ET
Dans les fichiers métiers, tu ne cherches presque jamais un seul mot. Tu cherches des variantes. Des synonymes. Des libellés voisins. C’est là que la logique excel si contient devient vraiment intéressante.
Tu peux vouloir détecter :
- “Facture” OU “Avoir”
- “Projet Alpha” ET “Urgent”
- plusieurs mots-clés dans des commentaires RH ou des notes comptables
Cas 1 avec une logique OU
Le principe est simple. Tu additionnes plusieurs tests. Si au moins un test réussit, le total est supérieur à zéro.
Exemple avec NB.SI :
=SI(NB.SI(A2;"*Facture*")+NB.SI(A2;"*Avoir*")>0;"Document client";"Autre")
Si A2 contient l’un des deux termes, Excel renvoie “Document client”.
Pourquoi cette méthode plaît en entreprise
Parce qu’elle est lisible. Un collègue reprend ton fichier, il comprend vite la logique.
Elle convient très bien quand tu as peu de critères, par exemple :
- compta clients
- suivi de litiges
- tri de commentaires d’enquête interne
Cas 2 avec une logique ET
Tu veux cette fois que tous les mots soient présents.
Tu peux garder la même idée et comparer la somme au nombre de critères :
=SI(NB.SI(A2;"*Projet Alpha*")+NB.SI(A2;"*Urgent*")=2;"À traiter";"Standard")
Si un seul des deux textes apparaît, la formule ne valide pas.
Une approche plus robuste avec CHERCHE
Quand les critères deviennent plus nombreux, mieux vaut passer par CHERCHE et SOMMEPROD.
Exemple :
=SI(SOMMEPROD(--ESTNUM(CHERCHE({"Alpha";"Urgent"};A2)))=2;"Oui";"Non")
Ici :
CHERCHEteste chaque mot du tableau{"Alpha";"Urgent"}ESTNUMconvertit en VRAI/FAUX--transforme en 1 et 0SOMMEPRODadditionne le tout
Si le total vaut 2, les deux mots sont présents.
Pour mieux cadrer les usages des conditions logiques, tu peux revoir la fonction ET.
Tableau de choix rapide
| Besoin | Formule la plus pratique |
|---|---|
| Un mot-clé simple | NB.SI |
| Quelques mots en logique OU | addition de NB.SI |
| Quelques mots en logique ET | somme comparée au nombre de critères |
| Liste de mots plus évolutive | SOMMEPROD + CHERCHE |
Exemple concret en contrôle de gestion
Tu reçois des écritures avec des libellés libres. Tu veux repérer celles liées à un projet interne. Les utilisateurs saisissent parfois “Alpha”, parfois “Projet Alpha”, parfois “urgent” dans le commentaire.
Une formule OU te sert à ratisser large :
=SI(NB.SI(B2;"*Alpha*")+NB.SI(B2;"*Projet Alpha*")>0;"Projet Alpha";"Hors périmètre")
Puis une formule ET te permet de repérer les lignes sensibles :
=SI(SOMMEPROD(--ESTNUM(CHERCHE({"Alpha";"Urgent"};B2)))=2;"Prioritaire";"Normal")
Plus tu travailles avec du texte libre, plus il faut penser en scénarios métier, pas en “une formule unique qui fait tout”.
Astuce de maintenance
Si tu as beaucoup de mots-clés, évite de tout taper en dur dans une seule formule géante. Mets plutôt la liste dans une plage dédiée, puis construis une logique autour. Le fichier sera plus propre, plus maintenable, et plus simple à auditer.
Compter et sommer les cellules qui contiennent un mot
Repérer une cellule qui contient un mot, c'est une première étape. Souvent, la vraie question vient juste après : combien de lignes sont concernées, et quel montant elles représentent. Les mêmes jokers répondent aux deux.
Compter avec NB.SI sur toute une colonne
Appliquée à une plage plutôt qu'à une seule cellule, NB.SI compte toutes les cellules qui contiennent le texte, quelle que soit sa position.
=NB.SI(A:A;"*Hauts-de-France*")
Cette formule compte aussi bien « Hauts-de-France » que « Région Hauts-de-France » : les astérisques acceptent n'importe quels caractères avant et après le mot.
Croiser plusieurs critères avec NB.SI.ENS et SOMME.SI.ENS
Prends un fichier de ventes avec le commercial en colonne A, le produit en colonne B et le chiffre d'affaires en colonne C.
Compter les ventes de Paul dont le produit contient « Vis »
=NB.SI.ENS(A:A;"Paul";B:B;"*Vis*")Additionner le chiffre d'affaires de ces mêmes ventes
=SOMME.SI.ENS(C:C;A:A;"Paul";B:B;"*Vis*")
Avec SOMME.SI.ENS, la plage à additionner vient en premier, puis les paires plage de critère et critère, jusqu'à 127 paires.
La puissance d’Excel 365 : FILTRE, LET et expressions régulières
Si tu utilises Excel 365, tu peux sortir de la logique “une formule par ligne”. C’est un changement très net dans la façon de travailler.

Le vrai saut, c’est FILTRE. Au lieu d’ajouter une colonne Oui/Non partout, tu peux extraire directement toutes les lignes qui contiennent ton texte.
FILTRE pour produire une liste exploitable
Supposons un tableau en A2:D100 et une recherche dans la colonne B.
Tu peux écrire :
=FILTRE(A2:D100;ESTNUM(CHERCHE("urgent";B2:B100));"Aucun résultat")
Excel te renvoie toutes les lignes où la colonne B contient “urgent”.
C’est excellent pour :
- un reporting RH dynamique
- un tableau de suivi des anomalies
- une extraction comptable ciblée
Si tu veux approfondir les usages, voici une page utile sur la fonction FILTRE.
Pourquoi c’est plus puissant qu’une simple colonne d’aide
Parce que tu obtiens directement un résultat prêt à l’emploi. Pas besoin de filtrer manuellement. Pas besoin de copier-coller. Le tableau s’adapte.
Dans la vraie vie, ça change beaucoup de choses. Tu peux créer un mini tableau de bord dans une feuille dédiée avec une cellule de recherche, puis connecter FILTRE à cette cellule.
Exemple :
=FILTRE(A2:D100;ESTNUM(CHERCHE(G2;B2:B100));"Aucun résultat")
Ici, G2 contient le mot-clé saisi par l’utilisateur.
LET pour rendre les formules respirables
Quand les formules deviennent longues, LET est ton meilleur ami. Tu nommes les morceaux de calcul au lieu de tout répéter.
Exemple :
=LET(
mot;G2;
zone;B2:B100;
test;ESTNUM(CHERCHE(mot;zone));
FILTRE(A2:D100;test;"Aucun résultat")
)
Cette version est plus claire. Et quand tu reviens dans le fichier deux semaines plus tard, tu te remercies.
Une bonne formule n’est pas seulement correcte. Elle doit rester lisible quand toi ou un collègue la relisez plus tard.
Les expressions régulières pour les cas complexes
Excel 365 gère désormais les expressions régulières dans la feuille, avec REGEX.TEST, qui renvoie VRAI quand le texte suit un motif. C’est idéal pour :
- reconnaître un format de téléphone
- détecter une structure de code
- tester des motifs plus riches que “contient tel mot”
Sur une version plus ancienne, tu peux t’en approcher de deux façons :
- Power Query, pour faire des traitements plus avancés avant chargement
- VBA, avec une fonction personnalisée utilisant un moteur adapté
Ce qui marche vraiment avec Excel 365
| Outil | Quand l’utiliser | Ce qu’il apporte |
|---|---|---|
| FILTRE | Extraire des lignes selon un mot-clé | Résultat dynamique immédiat |
| LET | Simplifier une formule longue | Lisibilité et maintenance |
| Power Query | Nettoyer ou transformer avant analyse | Processus plus robuste |
| VBA | Besoins très spécifiques | Personnalisation poussée |
Si tu fais souvent de l’analyse sur texte libre, Excel 365 te donne un avantage pratique énorme. Tu passes d’une logique de bricolage à une logique de système.
Automatiser la détection : mise en forme conditionnelle et snippets VBA
Une formule qui renvoie “Oui” est utile. Une cellule qui se colore toute seule est souvent plus efficace. Et une fonction personnalisée qui gère les cas tordus peut te faire économiser beaucoup d’allers-retours.
Rendre la détection visible avec la mise en forme conditionnelle
Si tu veux surligner immédiatement les cellules ou les lignes contenant un mot, la mise en forme conditionnelle est parfaite.
Prenons une colonne A avec des commentaires. Tu veux faire ressortir toutes les cellules contenant “Erreur”.
La formule de règle peut être :
=NB.SI(A1;"*Erreur*")>0
Les étapes concrètes
Sélectionne la plage à mettre en forme
Exemple :A1:A500ou tout ton tableauOuvre Mise en forme conditionnelle
Puis “Nouvelle règle”Choisis une règle basée sur une formule
Entre la formule adaptée à la première cellule de la plage
Définis un format visuel
Fond rouge, texte blanc, ou ce qui correspond à ton usage
En finance, cette approche fait ressortir :
- les libellés avec “rejet”
- les anomalies avec “écart”
- les commentaires contenant “urgent”
En RH, elle est très pratique pour des verbatims de managers, des motifs d’absence ou des alertes administratives.
Voici ce geste en quelques secondes dans cette vidéo :
Le sujet souvent ignoré en France
Les formules natives d’Excel ne gèrent pas toujours bien les écarts entre texte accentué et non accentué. Et en contexte francophone, ce n’est pas un détail.
Concrètement, tu peux chercher “cafe” alors que la base contient “café”. Ou l’inverse. Résultat, ta logique excel si contient échoue alors que le sens métier est bon.
Quand les données viennent de plusieurs systèmes ou de saisies humaines, les accents deviennent un sujet de qualité de données, pas un détail typographique.
La solution propre avec une UDF VBA
Dans les cas où tu veux ignorer la casse et les accents, une fonction VBA personnalisée est souvent la voie la plus fiable.
Voici un exemple de logique de fonction SI_CONTIENT_SANS_ACCENT.
Étape 1 avec le code VBA
Ouvre l’éditeur VBA, insère un module, puis colle une structure de ce type :
Function SI_CONTIENT_SANS_ACCENT(texte As String, motif As String) As Boolean
Dim t As String
Dim m As String
t = LCase(texte)
m = LCase(motif)
t = Replace(t, "é", "e")
t = Replace(t, "è", "e")
t = Replace(t, "ê", "e")
t = Replace(t, "à", "a")
t = Replace(t, "â", "a")
t = Replace(t, "ç", "c")
t = Replace(t, "î", "i")
t = Replace(t, "ï", "i")
t = Replace(t, "ô", "o")
t = Replace(t, "ù", "u")
t = Replace(t, "û", "u")
m = Replace(m, "é", "e")
m = Replace(m, "è", "e")
m = Replace(m, "ê", "e")
m = Replace(m, "à", "a")
m = Replace(m, "â", "a")
m = Replace(m, "ç", "c")
m = Replace(m, "î", "i")
m = Replace(m, "ï", "i")
m = Replace(m, "ô", "o")
m = Replace(m, "ù", "u")
m = Replace(m, "û", "u")
SI_CONTIENT_SANS_ACCENT = (InStr(1, t, m) > 0)
End Function
Étape 2 avec l’utilisation dans la feuille
Ensuite, dans Excel :
=SI(SI_CONTIENT_SANS_ACCENT(A2;"cafe");"Oui";"Non")
Si A2 contient “café fournisseur”, la formule renverra “Oui”.
Les atouts de cette approche
- Fiable sur des bases francophones imparfaites
- Lisible pour l’utilisateur final
- Réutilisable dans plusieurs fichiers
- Adaptable à des nomenclatures métiers
Tu peux enrichir ensuite la fonction pour traiter d’autres caractères ou règles internes.
Une fonction toute prête existe déjà, et notre page pour enlever les accents d’un texte dans Excel la donne à côté des autres méthodes, de SUBSTITUE à Power Query.
Si tu veux progresser à fond sur ce type de logique, la formation structurée reste le meilleur accélérateur. Pour ça, je te recommande notre formation Excel, surtout si tu veux consolider tes formules et automatiser proprement ton travail.
Le cas pratique Colorer un suivi de stock automatiquement applique la même idée à un stock, où la couleur signale la rupture avant que tu la cherches.
Questions fréquentes sur la logique SI CONTIENT
La plupart des blocages viennent moins des fonctions que du choix de la bonne méthode. Voici les réponses les plus utiles.
Quelle est la méthode la plus simple pour excel si contient
Pour un besoin direct, prends :
=SI(NB.SI(A2;"*texte*")>0;"Oui";"Non")
C’est la formule la plus rapide à écrire et la plus facile à transmettre dans une équipe.
Comment faire si je veux distinguer majuscules et minuscules
Utilise TROUVE avec ESTNUM.
=SI(ESTNUM(TROUVE("COMPTANT";A2));"Oui";"Non")
Si la casse n’a pas d’importance, CHERCHE est plus souple.
Pourquoi ma formule ne trouve pas un mot qui semble pourtant présent
En pratique, les causes les plus fréquentes sont :
- Accents différents entre la recherche et la donnée
- Espaces parasites en début ou fin de cellule
- Caractères invisibles issus d’un copier-coller
- Erreur de logique entre texte exact et texte contenu
Si tu récupères souvent des données externes, pense à nettoyer avec SUPPRESPACE, voire à créer une colonne intermédiaire de normalisation.
Quelle méthode choisir sur un gros volume
Voici mon repère simple :
| Situation | Méthode conseillée |
|---|---|
| Test rapide et lisible | NB.SI |
| Contrôle plus fin | CHERCHE ou TROUVE |
| Extraction dynamique | FILTRE |
| Cas accentués ou très spécifiques | VBA ou Power Query |
Est-ce qu’il faut toujours afficher Oui ou Non
Non. C’est souvent utile au début, mais pas obligatoire.
Tu peux aussi renvoyer :
- une catégorie
- un code d’alerte
- un VRAI/FAUX
- une cellule vide
Exemple :
=SI(ESTNUM(CHERCHE("urgent";A2));"Priorité haute";"")
En résumé
La logique excel si contient n’est pas une fonction unique. C’est une manière de combiner intelligemment plusieurs outils Excel.
Retiens surtout ceci :
NB.SIest parfait pour aller viteCHERCHEapporte de la souplesseTROUVEsert quand la casse compteOUetETpermettent de gérer les vrais cas métierFILTREetLETchangent la donne sur Excel 365- Le VBA devient précieux quand les accents et caractères spéciaux perturbent tes résultats
Si tu travailles en finance, RH, contrôle de gestion ou conseil, cette compétence te sert partout. Et plus tes données sont imparfaites, plus ta maîtrise des recherches textuelles fait la différence.