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;"[!""#$%&()*+,./:;<=>?@[\]^_`{|}~]";" ")))-LEN(TRIM(SUBSTITUTE(REGEXREPLACE(A2;"[!""#$%&()*+,./:;<=>?@[\]^_`{|}~]";" ");" "; "")))+1
Jolie regex, n'est-ce pas ?
  • méthode 2️⃣ :
=COUNTA(SPLIT(REGEXREPLACE(A2;"[!""#$%&()*+,./:;<=>?@[\]^_`{|}~]";"");" "))
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 j'automatise les tâches répétitives pour gagner du temps dans mon quotidien de travailleur du web.


Articles Similaires

Membres Public

Comment analyser des paramètres d'URL avec Google Sheets ?

L'édition du jour est directement inspirée de l'article paru il y a a quelques jours sur le blog Yapasdequoi d'Aymeric Bouillat. Dans son (très bon) article, Aymeric explique comment faire l'agrégation du nombre de hits Googlebot sur les paramètres d'URL

Comment analyser des paramètres d'URL avec Google Sheets ?
Membres Public

RECHERCHEV dans Google Sheets : comment retourner plusieurs colonnes à la fois ?

Il y a quelques jours, Mickaël Zerrougui a partagé un petit tuto sympa sur la RECHERCHEV en SEO. Si tu l'as loupé, je te le remets ici ⬇️ 🏆 La RechercheV en SEO 🏆 Y'a des SEO qui savent toujours pas utiliser la rechercheV ?😱 Vous en avez marre des

RECHERCHEV dans Google Sheets : comment retourner plusieurs colonnes à la fois ?
Membres Public

Comment extraire les dossiers d'une URL avec Google Sheets ?

La semaine dernière, Nicolas m'interpellait sur Twitter suite à ce tweet. Help : Tips Gsheet Hello les SEO J ai des urls dans mon gsheet du type : Site/cat/cat1/cat2 etc.. J’aimerai extraire automatiquement les 2 derniers slug d’url Une idee ? — Nicolas Evenou (@NicolasEvenou) October 23,

Comment extraire les dossiers d'une URL avec Google Sheets ?