Aller au contenu

Comment (bien) compter le nombre de mots dans un texte avec Google Sheets ?

Antoine Brisset
Antoine Brisset
Temps de lecture : 4 min
Comment (bien) compter le nombre de mots dans un texte avec Google Sheets ?
Photo by James Orr / Unsplash

Table des matières

Compter le nombre de mots dans un texte est une tâche récurrente en SEO.

Pourtant, elle n'est pas aussi triviale qu'il n'y paraît.

Je te montre aujourd'hui comment faire avec Google Sheets.

Méthodes

Il existe plusieurs façons de faire.

Je vais t'en présenter deux :

  • méthode 1️⃣ : compter le nombre d'espaces dans le texte
  • méthode 2️⃣ : découper le texte à chaque espace et compter le nombre de valeurs obtenues

Le texte d'exemple est : "je vous montre comment calculer le nombre de mots d'un texte, avec Google Sheets."

2 méthodes de comptage

Avec la 1ère méthode, on compte le nombre total de caractères (LEN), puis on compte le nombre de caractères sans les espaces (SUBSTITUTE). La différence entre les 2 permet d'obtenir le nombre de mots.

Avec la 2ème méthode, on découpe la chaîne à chaque espace (SPLIT), et on compte le nombre de valeurs issues de ce découpage (COUNTA).

Problème

Dans les deux cas, le décompte peut être faux.

Pourquoi ?

À cause des signes de ponctuation.

Et oui, avec la 1ère méthode (LEN), si la phrase se termine par un espace + point d'exclamation (" !"), cet espace va être comptabilisé. Ce qui va ajouter un mot "en trop".

Idem avec la 2ème méthode (SPLIT) : le caractère "!" va se retrouver dans la plage de COUNTA et il sera comptabilisé.

La virgule et le point, eux, ne posent pas problème, car ils sont collés au mot qui les précède.

Espace + point d'exclamation = un mot en trop

Solution

Pour contourner ce problème, il faut passer par une méthode intermédiaire qui va remplacer les signes de ponctuation problématiques par... rien.

Ce qu'on va faire avec REGEXREPLACE.

Suppression des signes de ponctuation

C'est mieux.

Avec la 2ème méthode, cette fois le résultat est correct.

Mais... c'est toujours incorrect avec la 1ère méthode.

Et oui, si le texte se termine par un point (exemple : "Sheets."), le dernier mot n'est pas comptabilisé. Il faut donc forcer un +1.

Ajout de +1 à la 1ère formule

Cette fois c'est bon.

Hummm... Vraiment ?

Non, il reste un problème : si le texte se termine par un espace + point d'exclamation (ou d'interrogation), le signe de ponctuation va bien être supprimé (via le REGEXREPLACE) mais pas l'espace.

Il faut donc ajouter un TRIM pour le supprimer.

Suppression de l'espace superflu

Récapitulatif

Voici les formules finales.

  • méthode 1️⃣ :
=LEN(TRIM(REGEXREPLACE(A2;"[,;:?!]+";"")))-LEN(TRIM(SUBSTITUTE(REGEXREPLACE(A2;"[,;:?!]+";"");" "; "")))+1
  • méthode 2️⃣ :
=COUNTA(SPLIT(REGEXREPLACE(A2;"[,;:?!]+";"");" "))

Limites

Bien sûr, ces 2 méthodes ne sont pas parfaites.

Elles comportent même plusieurs biais.

Deux exemples pour illustrer :

  • si je prends le texte "2 + 2 = 4", 5 mots seront comptabilisés. Est-ce juste ? Faut-il compter les opérateurs ? Les chiffres ?
  • si je prends ce morceau de phrase "Google Sheets ( le tableur Google)", 6 mots seront comptabilisés. Ici, à cause de l'erreur de syntaxe (espace superflu après la parenthèse ouvrante), la parenthèse sera comptabilisée.

Pour traiter ces cas particuliers, il faudrait supprimer tout signe de ponctuation, hors mis le trait d'union et l'apostrophe qui sont utilisés pour lier des mots.

On aurait alors des formules de ce type :

  • méthode 1️⃣ :
=LEN(TRIM(REGEXREPLACE(A2;"[!""#$%&()*+,./:;<=>[email protected][\]^_`{|}~]";" ")))-LEN(TRIM(SUBSTITUTE(REGEXREPLACE(A2;"[!""#$%&()*+,./:;<=>[email protected][\]^_`{|}~]";" ");" "; "")))+1
Jolie regex, n'est-ce pas ?
  • méthode 2️⃣ :
=COUNTA(SPLIT(REGEXREPLACE(A2;"[!""#$%&()*+,./:;<=>[email protected][\]^_`{|}~]";"");" "))
Suppression de toute la ponctuation (sauf trait d'union et apostrophe)

À vous de voir ce qui vous paraît le plus juste.

Honnêtement, je pense que chacun a sa propre définition de ce qu'est un "mot". Donc difficile d'être objectif.

D'ailleurs, ça peut poser problème pour des prestations de rédaction dont le tarif est indexé sur le nombre de mots...

Une dernière remarque.

Pour le texte qui m'a servi d'exemple, un outil comme compteur-de-mots.ouest-france.fr me sort 15 mots et non 14, car il considère "d'" et "un" dans "d'un" comme deux mots distincts.

Personnellement, je le compte comme un seul mot, mais encore une fois à chacun de se faire son avis :)

Google Sheets

Antoine Brisset Twitter

Consultant SEO depuis 2010. Je traque les clics inutiles et automatise les tâches répétitives pour gagner du temps dans mon quotidien de travailleur du web.

Commentaires


Articles Similaires

Membres Public

Des variables dans les formules Google Sheets (enfin !)

Le mois dernier, Google a ajouté 11 nouvelles fonctions dans Google Sheets. Tu peux retrouver tout ça en détail ici. Parmi ces nouveautés, celle que j'ai le plus vite intégrée dans mon quotidien est sans hésiter LET. La fonction LET permet en effet de créer des variables à l'intérieur d'une

Des variables dans les formules Google Sheets (enfin !)
Membres Public

Comment calculer la similarité de 2 textes avec Google Sheets ?

Aujourd'hui, on se plonge à nouveau dans Google Sheets avec un tuto rapide pour te montrer comment mesurer la similarité entre 2 contenus. Choix de la métrique : l'indice de Jaccard Il existe énormément de façons de mesurer un taux de similarité entre deux textes : distance de Levenshtein, indice de Dice,

Comment calculer la similarité de 2 textes avec Google Sheets ?
Membres Public

Fonction LAMBDA dans Google Sheets : un exemple concret d'utilisation

Il y a quelques semaines, j'ai été confronté à un problème dans le développement de Gadgeto. Mon besoin : afficher automatiquement (sans utiliser la poignée de recopie) le nombre d'occurrences d'une valeur figurant dans chaque ligne d'une plage de données. Pour que ce soit plus clair, voici le jeu de données

Fonction LAMBDA dans Google Sheets : un exemple concret d'utilisation