Formule Excel: compter le nombre total de mots dans une cellule -

Table des matières

Formule générique

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Sommaire

Pour compter le nombre total de mots dans une cellule, vous pouvez utiliser une formule basée sur les fonctions LEN et SUBSTITUTE, avec l'aide de la fonction TRIM. Dans l'exemple illustré, la formule de la cellule C5, copiée vers le bas, est:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+1

La formule renvoie le nombre de mots dans la cellule B5.

Explication

Excel n'a pas de fonction dédiée pour compter les mots dans une cellule. Cependant, avec un peu d'ingéniosité, vous pouvez créer une telle formule à l'aide des fonctions SUBSTITUTE et LEN, avec l'aide de TRIM, comme indiqué dans l'exemple. À un niveau élevé, cette formule utilise la fonction LEN pour compter le nombre de caractères dans la cellule, avec et sans espaces, puis utilise la différence pour déterminer le nombre de mots. Cela fonctionne, car le nombre de mots est égal au nombre d'espaces + 1, tant qu'il y a un espace entre chaque mot.

La première partie de la formule compte les caractères de la cellule B5, après avoir supprimé l'espace supplémentaire:

=LEN(TRIM(B5)) // normalize space, count characters

À l'intérieur de LEN, la fonction TRIM supprime d'abord les espaces supplémentaires entre les mots, ou au début ou à la fin du texte. Ceci est important, car tout espace supplémentaire annulera le nombre de mots. Dans ce cas, il n'y a pas de caractères d'espacement supplémentaires, donc TRIM renvoie le texte d'origine directement à la fonction LEN, qui renvoie 30:

LEN("All Quiet on the Western Front") // returns 30

À ce stade, nous avons:

=30-LEN(SUBSTITUTE(B5," ",""))+1

Ensuite, nous utilisons la fonction SUBSTITUTE pour supprimer tous les espaces du texte:

SUBSTITUTE(B5," ","") // strip all space

Remarque SUBSTITUTE est configuré pour rechercher un caractère espace ("") et le remplacer par une chaîne vide (""). Par défaut, SUBSTITUTE remplacera tous les espaces. Le résultat est livré directement à la fonction LEN, qui renvoie le décompte:

LEN("AllQuietontheWesternFront") // returns 25

LEN renvoie 25, le nombre de caractères restants une fois que tout l'espace a été supprimé. Nous pouvons maintenant simplifier la formule pour:

=30-25+1 // returns 6

qui renvoie 6 comme résultat final, le nombre de mots dans la cellule B5.

Gérer les cellules vides

La formule de l'exemple renvoie 1 même si une cellule est vide ou contient uniquement de l'espace. Cela se produit parce que nous ajoutons 1 sans condition, après avoir compté les caractères d'espacement entre les mots. Pour vous prémunir contre ce problème, vous pouvez adapter la formule comme indiqué ci-dessous:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Notez que nous avons remplacé 1 par cette expression:

LEN(TRIM(B5))>0

Ce code coupe d'abord B5, puis vérifie la longueur. Si B5 contient du texte, LEN renvoie un nombre positif et l'expression retourne TRUE. Si B5 est vide ou contient uniquement de l'espace, TRIM renvoie une chaîne vide ("") à LEN. Dans ce cas, LEN renvoie zéro (0) et l'expression renvoie FALSE. L'astuce est que VRAI et FAUX évaluent respectivement à 1 et à zéro lorsqu'ils sont impliqués dans une opération mathématique. Par conséquent, l'expression ajoute seulement 1 lorsqu'il y a du texte dans B5. Sinon, il ajoute zéro (0). Cette logique pourrait également être écrite avec l'instruction de fonction IF comme ceci:

IF(LEN(TRIM(B5))>0,1,0)

et le résultat serait le même. L'expression ci-dessus est simplement plus compacte.

Articles intéressants...