Comprendre l'utilité de la formule Excel SI CONTIENT
La formule SI CONTIENT (ou plutôt son équivalent combiné) est extrêmement utile lorsque vous devez analyser des données textuelles dans Excel. Imaginez que vous ayez une liste de noms de produits et que vous souhaitiez identifier ceux qui contiennent le mot "chaussure". Ou encore, une liste d'adresses e-mail et vous voulez extraire celles qui appartiennent à un domaine spécifique. Dans ces cas, une formule SI CONTIENT vous permet d'automatiser le processus et d'éviter de devoir parcourir manuellement chaque cellule.
Elle est particulièrement pertinente pour:
- Filtrer des données: Identifier rapidement les lignes contenant un certain mot-clé.
- Catégoriser des informations: Classer automatiquement des éléments en fonction de la présence d'un texte spécifique.
- Valider des données: S'assurer que des données saisies respectent un certain format (par exemple, vérifier qu'un code produit contient un préfixe spécifique).
- Automatiser des rapports: Créer des tableaux de bord dynamiques qui se mettent à jour automatiquement en fonction du contenu des cellules.
La formule SI CONTIENT : Comment la créer ?
Comme mentionné précédemment, il n'existe pas de formule SI CONTIENT pré-définie dans Excel. Cependant, vous pouvez facilement la créer en combinant trois fonctions clés :
SI(IF) : Cette fonction permet d'effectuer un test logique et de renvoyer une valeur si le test est vrai et une autre valeur si le test est faux. Sa syntaxe estSI(test_logique; valeur_si_vrai; valeur_si_faux). Par exemple,=SI(A1>10; "Supérieur à 10"; "Inférieur ou égal à 10").CHERCHE(SEARCH) ouTROUVE(FIND) : Ces fonctions recherchent une chaîne de caractères dans une autre chaîne de caractères et renvoient la position de début de la première occurrence. La différence principale est queCHERCHEn'est pas sensible à la casse (majuscules/minuscules), tandis queTROUVEl'est. Leur syntaxe estCHERCHE(texte_cherché; texte_dans_lequel_chercher; [no_départ])etTROUVE(texte_cherché; texte_dans_lequel_chercher; [no_départ]). Le paramètre[no_départ]est optionnel et indique la position de départ de la recherche.ESTNUM(ISNUMBER) : Cette fonction vérifie si une valeur est un nombre et renvoieVRAIsi c'est le cas, etFAUXsinon. Sa syntaxe estESTNUM(valeur). Par exemple,=ESTNUM(5)renvoieVRAIet=ESTNUM("texte")renvoieFAUX.
La formule complète : Explication détaillée
La formule combinée pour simuler SI CONTIENT est la suivante :
=SI(ESTNUM(CHERCHE("texte_à_chercher";A1));"Valeur si trouvé";"Valeur si non trouvé")
Ou, si vous souhaitez être sensible à la casse :
=SI(ESTNUM(TROUVE("texte_à_chercher";A1));"Valeur si trouvé";"Valeur si non trouvé")
Décortiquons cette formule étape par étape :
CHERCHE("texte_à_chercher";A1)(ouTROUVE) : Cette partie recherche le texte spécifié ("texte_à_chercher") dans la cellule A1. Si le texte est trouvé, la fonction renvoie la position de début du texte trouvé (un nombre). Si le texte n'est pas trouvé, la fonction renvoie une erreur#VALEUR!.ESTNUM(...): Cette partie prend le résultat de la fonctionCHERCHE(ouTROUVE) et vérifie si c'est un nombre. SiCHERCHE(ouTROUVE) a trouvé le texte, le résultat est un nombre, etESTNUMrenvoieVRAI. SiCHERCHE(ouTROUVE) a renvoyé une erreur#VALEUR!,ESTNUMrenvoieFAUX.SI(ESTNUM(...);"Valeur si trouvé";"Valeur si non trouvé"): Cette partie utilise le résultat deESTNUMcomme test logique. SiESTNUMrenvoieVRAI(c'est-à-dire que le texte a été trouvé), la formule renvoie la"Valeur si trouvé". SiESTNUMrenvoieFAUX(c'est-à-dire que le texte n'a pas été trouvé), la formule renvoie la"Valeur si non trouvé".
Exemple pratique : Identifier les produits contenant le mot "chaussure"
Imaginons que vous ayez une liste de produits dans la colonne A (A1:A10) et que vous souhaitiez identifier ceux qui contiennent le mot "chaussure". Vous pouvez utiliser la formule suivante dans la colonne B :
=SI(ESTNUM(CHERCHE("chaussure";A1));"Oui";"Non")
Cette formule affichera "Oui" dans la colonne B si le produit dans la colonne A contient le mot "chaussure", et "Non" sinon.
Exemple visuel :
| Produit | Formule (Colonne B) | Résultat (Colonne B) |
|---|---|---|
| Chaussure de sport | =SI(ESTNUM(CHERCHE("chaussure";A1));"Oui";"Non") |
Oui |
| Pantalon | =SI(ESTNUM(CHERCHE("chaussure";A2));"Oui";"Non") |
Non |
| Chaussures élégantes | =SI(ESTNUM(CHERCHE("chaussure";A3));"Oui";"Non") |
Oui |
| Sac à main | =SI(ESTNUM(CHERCHE("chaussure";A4));"Oui";"Non") |
Non |
(Note: A1, A2, A3, A4 représentent les cellules contenant les noms des produits.)
Exemple pratique : Extraire les adresses e-mail d'un domaine spécifique
Supposons que vous ayez une liste d'adresses e-mail dans la colonne C (C1:C20) et que vous souhaitiez extraire celles qui appartiennent au domaine "@example.com". Vous pouvez utiliser la formule suivante dans la colonne D :
=SI(ESTNUM(CHERCHE("@example.com";C1));C1;"")
Cette formule affichera l'adresse e-mail complète dans la colonne D si elle contient "@example.com", et laissera la cellule vide sinon. Ici, la "Valeur si non trouvé" est une chaîne vide ("").
Utiliser TROUVE pour une recherche sensible à la casse
Si vous avez besoin d'une recherche qui respecte la casse (majuscules/minuscules), remplacez CHERCHE par TROUVE. Par exemple, si vous voulez trouver uniquement les occurrences exactes de "Chaussure" (avec un C majuscule) dans la liste de produits, utilisez :
=SI(ESTNUM(TROUVE("Chaussure";A1));"Oui";"Non")
Cette formule ne renverra "Oui" que si le mot "Chaussure" (avec un C majuscule) est présent. Si le mot est écrit "chaussure" (avec un c minuscule), la formule renverra "Non".
Erreurs courantes et comment les éviter
L'utilisation de la formule SI CONTIENT combinée peut parfois entraîner des erreurs. Voici les plus courantes et comment les éviter :
- Erreur
#VALEUR!: Cette erreur se produit lorsque la fonctionCHERCHE(ouTROUVE) ne trouve pas le texte recherché. La fonction renvoie alors une erreur, queESTNUMtransforme enFAUX. Cela ne casse pas la formule, mais il est important de comprendre pourquoi elle se produit. Vérifiez que le texte que vous recherchez est bien présent dans la cellule et que la casse est correcte si vous utilisezTROUVE. - Résultats inattendus avec
CHERCHE: Étant donné queCHERCHEn'est pas sensible à la casse, elle peut trouver des correspondances que vous ne souhaitez pas. Par exemple, si vous recherchez "chat", elle trouvera également "ChAT". Si vous avez besoin d'une recherche précise, utilisezTROUVE. - Oublier les guillemets : N'oubliez pas d'entourer le texte que vous recherchez de guillemets doubles (
"). Sinon, Excel interprétera le texte comme un nom de variable. - Utiliser des caractères spéciaux : Si le texte que vous recherchez contient des caractères spéciaux (comme
*,?,~), vous devrez les échapper en les précédant d'un tilde (~). Par exemple, pour rechercher "Est-ce que ?", vous devrez utiliserCHERCHE("Est-ce que ~?";A1).
Alternatives à la formule SI CONTIENT
Bien que la formule combinée SI, CHERCHE (ou TROUVE) et ESTNUM soit une solution efficace, il existe d'autres alternatives, notamment :
- Fonctions
SOMME.SI.ENSetNB.SI.ENSavec des caractères génériques : Ces fonctions permettent de compter ou de sommer des valeurs en fonction de plusieurs critères, y compris la présence d'un certain texte. Vous pouvez utiliser des caractères génériques comme*(qui représente n'importe quel nombre de caractères) pour rechercher des cellules contenant un texte spécifique. Par exemple,=NB.SI.ENS(A1:A10;"*chaussure*")comptera le nombre de cellules dans la plage A1:A10 qui contiennent le mot "chaussure". - Power Query (Get & Transform Data) : Power Query est un outil puissant pour l'extraction, la transformation et le chargement de données. Il offre des fonctionnalités avancées pour la manipulation de texte, y compris la possibilité de rechercher et de filtrer des données en fonction de critères complexes. Power Query est particulièrement utile lorsque vous travaillez avec de grandes quantités de données ou que vous devez effectuer des transformations complexes.
- VBA (Visual Basic for Applications) : Si vous avez besoin d'une solution très personnalisée, vous pouvez utiliser VBA pour créer une fonction personnalisée
SI CONTIENT. VBA offre une flexibilité maximale, mais nécessite des connaissances en programmation.
Conseils et astuces pour optimiser votre formule SI CONTIENT
- Utilisez des références de cellules pour le texte à rechercher : Au lieu d'écrire directement le texte à rechercher dans la formule, utilisez une référence de cellule. Cela vous permettra de modifier facilement le texte recherché sans avoir à modifier la formule elle-même. Par exemple, si vous mettez le texte "chaussure" dans la cellule C1, vous pouvez utiliser la formule
=SI(ESTNUM(CHERCHE(C1;A1));"Oui";"Non"). - Combinez la formule
SI CONTIENTavec d'autres fonctions : Vous pouvez combiner la formuleSI CONTIENTavec d'autres fonctions Excel pour effectuer des analyses plus complexes. Par exemple, vous pouvez l'utiliser avec la fonctionCONCATENERpour extraire et combiner des informations de différentes cellules. - Utilisez la mise en forme conditionnelle : Vous pouvez utiliser la mise en forme conditionnelle pour mettre en évidence les cellules qui contiennent un certain texte. Cela peut vous aider à identifier rapidement les données qui vous intéressent.
En conclusion, bien qu'il n'existe pas de formule SI CONTIENT native dans Excel, vous pouvez facilement en créer une en combinant les fonctions SI, CHERCHE (ou TROUVE) et ESTNUM. Cette technique vous permet d'automatiser vos analyses de données textuelles et de gagner un temps précieux. N'hésitez pas à expérimenter avec les différents exemples et astuces présentés dans cet article pour maîtriser cette compétence essentielle d'Excel.