Excel : Vérifier si une Cellule Contient un Texte ou un Mot

Il existe plusieurs façons de déterminer si une cellule Excel contient un mot, un texte specifique ou même un caractère spécifique, à l’aide des fonctions Excel :

Je détaillerai dans cet article comment utiliser chacune de ces fonctions dans cette optique.

Par ailleurs, ces combinaisons pourront être utilisées à l’intérieur d’une fonction SI pour répondre à la condition « si cellule contient du texte, alors… » ou « si une cellule contient tel mot, alors… ».

On traitera ici uniquement le cas de la recherche dans une seule cellule.

J’ai rédigé un autre article qui traite séparément le cas de la recherche d’une valeur dans une liste, colonne ou ligne.

Avec la Fonction CHERCHE (SEARCH)

Telle que définie dans Excel, la Fonction CHERCHE (Version anglaise : SEARCH) « renvoie le numéro du caractère au niveau duquel est trouvé un caractère ou le début d’une chaîne de caractères, en lisant de la gauche à droite (pas de distinction entre majuscules et minuscules). »

La fonction CHERCHE prend trois arguments:

  • « Texte cherché » : Il s’agit du texte à trouver, cela peut être une lettre, une chaîne de caractère ou un wildcard (* ou ?) – passé directement en argument ou via une référence à une cellule.
  • « Texte » : Il s’agit du texte, direct ou en référence à une cellule, dans lequel la recherche sera effectuée.
  • « Numéro Départ » : Cet argument est optionnel puisque défini par défaut à 1. Il s’agit de l’emplacement en nombre de caractères à partir duquel la recherche doit commencer, la partie précédente sera ignorée.
=CHERCHE(Texte cherché; Texte; Numéro Départ)

Le résultat de cette fonction sera le numéro correspondant à l’emplacement (numéro) du caractère (ou du début de la chaîne de caractère) si le texte cherché est trouvé, si le texte cherché n’est pas trouvé, alors le résultat sera une erreur « #VALEUR! ».

Ainsi, puisque l’on cherche à déterminer si un texte contient un mot, il sera utile de combiner la fonction CHERCHE avec la fonction ESTNUM qui « contrôle si la valeur est un nombre et renvoie VRAI ou FAUX ».

Si le texte cherché dans la fonction CHERCHE est trouvé, le résultat sera un nombre, qui contrôlé à son tour par la fonction ESTNUM retournera « VRAI ».

Si le texte n’est pas trouvé, alors la fonction CHERCHE renverra une erreur « #VALEUR! », qui à son tour controlée par la fonction ESTNUM retournera « FAUX ».

=ESTNUM(CHERCHE(Texte cherché; Texte; Numéro Départ))

L’utilisation de la fonction CHERCHE permet d’ignorer les Majuscules/Minuscules du texte cherché (Recherche insensible à la casse). Si l’on souhaite prendre en compte la casse, alors on utilisera la fonction TROUVE décrite dans la section suivante.

Avec la Fonction TROUVE (FIND)

D’après la définition dans Excel, la fonction TROUVE (Version anglaise : FIND) « renvoie la position de départ d’une chaîne de texte à l’intérieur d’une autre chaîne de texte. TROUVE distingue les majuscules et les minuscules. »

La Fonction TROUVE prend trois arguments, (identiques à ceux de la fonction CHERCHE à la distinction que les Wildcard ne sont pas autorisés) :

  • « Texte cherché » : Il s’agit du texte à trouver, cela peut être une lettre, une chaîne de caractère.
  • « Texte » : Il s’agit du texte, direct ou en référence à une cellule, dans lequel la recherche sera effectuée.
  • « Numéro Départ » : Cet argument est optionnel puisque défini par défaut à 1. Il s’agit de l’emplacement en nombre de caractères à partir duquel la recherche doit commencer, la partie précédente sera ignorée.
=TROUVE(Texte cherché; Texte; Numéro Départ)

Ici encore, le résultat de cette fonction sera le numéro correspondant à la position de départ du caractère (ou du début de la chaîne de caractère) si le texte cherché est trouvé. Et si le texte cherché n’est pas trouvé, le résultat sera là aussi une erreur « #VALEUR! ».

De la même façon qu’avec la fonction CHERCHE, puisque l’on cherche à déterminer si un texte contient un mot, on combinera la fonction TROUVE à l’intérieur de la fonction ESTNUM qui « contrôle si la valeur est un nombre et renvoie VRAI ou FAUX ».

Si le texte cherché dans la fonction TROUVE est trouvé, le résultat sera un nombre, qui contrôlé à son tour par la fonction ESTNUM retournera « VRAI ».

Si le texte n’est pas trouvé, alors la fonction TROUVE renverra une erreur « #VALEUR! », qui à son tour controlée par la fonction ESTNUM retournera « FAUX ».

=ESTNUM(TROUVE(Texte cherché; Texte; Numéro Départ))

L’utilisation de la fonction TROUVE permet de considérer les Majuscules/Minuscules du texte cherché (Recherche sensible à la casse).

Différences entre CHERCHE et TROUVE

Bien que semblables dans leurs arguments et valeur de retour, on distinguera les différences suivantes entre les fonctions CHERCHE et TROUVE : 

  • La fonction CHERCHE ne prend pas en compte les Minuscules/Majuscules dans sa recherche ; tandis que la fonction TROUVE considérera la différence de casse.
  • La fonction CHERCHE permet l’utilisation des Wildcard/caractères génériques « * » et « ? » tandis que la fonction TROUVE les considérera directement comme des caractères à rechercher.

Avec la Fonction NB.SI (COUNTIF)

La fonction NB.SI (Version anglaise : COUNTIF) « détermine le nombre de cellules non vides répondant à la condition à l’intérieur d’une plage. »

Ce n’est pas la fonction la plus intuitive pour déterminer si un mot se trouve au sein d’un texte mais cela est tout à fait possible en l’utilisant sur une seule cellule et en jouant avec le format de la condition.

La fonction NB.SI prend deux arguments : 

  • « Plage » : Correspond à la plage de cellules pour laquelle on souhaite compter le nombre de cellules qui remplissent la condition « critère »
  • « Critère » : Est la condition à remplir pour que la cellule de la plage soit comptée.
=NB.SI(Plage; Critère)

Les Wildcard « * » et « ? » étant acceptées au sein du critère, on peut alors utiliser la fonction NB.SI avec pour plage une unique cellule et pour critère le mot, ou la lettre, recherché entouré de « * ». 

Ainsi, si le mot cherché est trouvé, la fonction retournera 1, dans le cas contraire, la fonction retournera 0. Sachant cela, on peut utiliser une égalité pour comparer le résultat et obtenir un booléen « VRAI » ou « FAUX » en retour.

=NB.SI(Plage; Critère) = 1

Déterminer si une Cellule Contient un Texte Spécifique avec CHERCHE, TROUVE et NB.SI : Exemples

Pour finir, illustrons les trois manières de déterminer si une cellule Excel contient un caractère ou une chaîne de caractères à travers 5 exemples comparatifs pour chaque fonction.

Dans les exemples ci-dessous, on cherche à déterminer si un identifiant ISIN (Colonne C : le texte dans lequel on cherche) contient le texte cherché (Colonne D), le résultat est donné sous forme booléen VRAI/FAUX (Colonne E).

Pour tous les exemples de NB.SI, on notera la nécessité de constamment utiliser le caractère « * » pour entourer le texte cherché. On mettra « * » avant et après le texte cherché. Sauf si l’on souhaite que le caractère soit trouvé en début (dans ce cas uniquement « * » après le texte cherché) ou à la fin (dans ce cas uniquement « * » avant le texte cherché).

Exemples : CHERCHE, TROUVE et NB.SI
Exemples : CHERCHE, TROUVE et NB.SI

Exemples 1, 6 et 11 : Même Format Minuscules/Majuscules

Dans ces exemples, pour chaque fonction on cherche à déterminer si « FR0000131104 » contient « FR ».

C’est effectivement le cas et le format de Majuscules est identique, chaque fonction retourne donc le résultat « VRAI ».

Exemples 2, 7 et 12 : Minuscules/Majuscules Différentes

Exemple identique au précédent, mais cette fois-ci le format Minuscules/Majuscules est différent dans le texte cherché : on cherche « fr » dans « FR0000131104 ».

Les fonctions CHERCHE et NB.SI qui ne considèrent pas la casse du texte retourne le résultat « VRAI », tandis que la fonction TROUVE considère « FR » et « fr » comme différents et renvoie donc le résultat « FAUX ».

Exemples 3, 8 et 13 : Le Texte n’est pas Présent

Ici on cherche « FR » dans « US1729674242 », il n’y a aucune correspondance, chaque fonction renverra donc « FAUX ».

Exemples 4, 9 et 14 : Un Caractère au Milieu du Texte

Dans cet exemple on cherche un caractère unique dans « US1729674242 ». La caractère « 1 » étant bien présent chaque fonction renvoie le résultat « VRAI ».

Exemples 5, 10 et 15 : Le Caractère *

Pour finir, on utilise le caractère générique « * » qui correspond à n’importe quel caractère et n’importe quel nombre de caractères.

La fonction TROUVE considère en revanche ce caractère tel qu’il est et cherchera donc « * » dans « US1729674242 », puisqu’il ne s’y trouve pas, le résultat sera « FAUX ».

Pour CHERCHE et NB.SI, on cherche donc n’importe quel caractère dans « US1729674242 », bien évidemment le résultat est « VRAI ».