Comment séparer et compter les mots dans Google Sheets (Formule matricielle)

Lorsque je parcourais certains commentaires, j’ai trouvé une question intéressante qui est le sujet de cet article. L’utilisateur demandait une formule matricielle pour séparer et compter les mots dans Google Sheets.

Normalement, nous utilisons deux fonctions individuelles en combinaison pour séparer une phrase dans une cellule et compter les mots. Il s’agit de SPLIT et COUNTA.

Mais cette combinaison ne fonctionne pas en tant que formule matricielle pour peupler verticalement le nombre de mots séparés dans chaque ligne.

Quelle est la raison?

En combinaison, COUNTA n’est pas adapté pour renvoyer un résultat matriciel. Vous pouvez le comprendre à partir de l’exemple ci-dessous.

Split and Count Words - Non-Array

Dans l’exemple ci-dessus, j’ai utilisé deux formules non matricielles pour séparer et compter les mots dans Google Sheets.

Vous pouvez utiliser la fonction SPLIT dans une matrice comme ci-dessous.

=ArrayFormula(split(A2:A3," "))

Si vous utilisez la fonction COUNTA, vous obtiendrez le compte total des mots, ce qui sera de 15 dans la cellule B2, et non de 8 dans B2 et 7 dans B3.

Formule matricielle pour séparer et compter les mots (Solution de contournement)

Je peux proposer deux types de formules différentes en alternative pour séparer et compter les mots dans Google Sheets. La logique est assez différente.

Logique 1

La première formule est basée sur la fonction Regexreplace. Elle remplace tous les mots dans chaque ligne par des espaces vides. Les caractères restants ne sont que des espaces. Nous pouvons donc obtenir la longueur des espaces dans chaque ligne.

En ajoutant +1 à la longueur des espaces, nous obtiendrons le nombre de mots.

Logique 2

Dans la deuxième formule, la logique est totalement différente.

En utilisant la fonction Substitute, je vais supprimer les espaces dans les phrases (chaînes de texte) en les remplaçant par des espaces vides. La longueur_des_mots_réels – la longueur_des_mots_avec_espaces_supprimés + 1 donnera le compte.

Comment mettre en œuvre les deux logiques ci-dessus en tant qu’alternative pour séparer et compter les mots dans Google Sheets.

Formule matricielle Regex pour « séparer » et compter les mots dans chaque ligne dans Google Sheets

Tout d’abord, je vais expliquer comment remplacer tous les caractères non espaces dans une phrase à l’aide d’une expression régulière. Ainsi, nous n’obtiendrons que des espaces dans chaque cellule de la ligne.

=ArrayFormula(regexreplace(A2:A,"[^s]",""))

La formule matricielle Regexreplace ci-dessus dans la cellule B2 ne renvoie aucune valeur car elle ne retourne que les espaces des mots dans A2:A.

Elle remplace tous les mots dans A2:A par des espaces vides. Donc, seuls les espaces blancs sont laissés. Nous ne verrons donc évidemment aucune valeur ou aucun caractère.

Ajoutez la fonction LEN à la formule ci-dessus pour obtenir la longueur des espaces dans chaque ligne. Pas la séparation et le compte des mots.

step 1

Nous devons ajouter la valeur 1 à la longueur des espaces pour obtenir le nombre de mots, ou nous pouvons dire séparer et compter les mots dans chaque ligne dans Google Sheets car le nombre de mots dans une phrase sera le nombre d’espaces + 1.

=ArrayFormula(LEN(regexreplace(A2:A,"[^s]",""))+1)

La formule ci-dessus est pour toute la colonne A2:A. Elle renvoie donc 0 dans certaines cellules (contre les lignes vides dans A2:A). Pour éviter cela, utilisez un autre IF+LEN comme suit.

=ArrayFormula(if(len(A2:A),LEN(regexreplace(A2:A,"[^s]",""))+1,))

Ce qui précède est le premier exemple (solution de contournement) pour une formule matricielle pour séparer et compter les mots dans Google Sheets.

Formule matricielle Substitute comme solution de contournement pour séparer et compter les mots dans chaque ligne

Bien que la formule ci-dessus réponde à votre demande, voici une autre formule. Ce qui suit est la deuxième logique mentionnée précédemment.

Cette fois, laissez-moi partager la formule d’abord, puis vous pourrez voir l’explication.

=ArrayFormula(if(len(A2:A),len(A2:A)-len(SUBSTITUTE(A2:A," ",""))+1,))

Explication de la formule

Il y a deux parties principales.

Partie 1: len(A2:A)

Partie 2: len(SUBSTITUTE(A2:A, » « , » »))

La formule de la partie 1 avec ArrayFormula renverra la longueur réelle (compte de caractères) des phrases. La partie 2 va d’abord remplacer tous les espaces par des espaces vides et renvoyer le compte.

partie1-partie2+1 sera la formule équivalente à la séparation et au comptage des mots dans Google Sheets.

Tout comme notre formule Regex, ici aussi pour supprimer les 0 contre les cellules vides, j’ai utilisé if(len(A2:A).

C’est tout.

Ressources:

  1. Comment compter les mots séparés par des virgules dans une cellule dans Google Sheets.
  2. Somme, comptage, valeurs cumulatives séparées par des virgules dans Google Sheets.
  3. Compter les mots et insérer des lignes vides équivalentes dans Google Sheets.
  4. Obtenir le nombre d’occurrences dans chaque ligne dans Google Sheets (formule combinée).
  5. Compter un caractère spécifique dans Google Sheets.

Articles en lien