Comptez le nombre de mots dans une chaîne dans Google Sheets

Réponses:

9

Dans Google Spreadsheets, je le ferais un peu différemment.

Formule

=COUNTA(SPLIT(A1, " "))

Expliqué

La SPLITfonction est uniquement disponible dans Google Spreadsheet et divisera le contenu de la cellule sur chaque espace ( " "). La COUNTfonction comptera simplement les instances.

La formule Excel donne la même réponse, mais un peu plus laborieuse:

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

Capture d'écran

entrez la description de l'image ici

Remarque

Voir la réponse suivante sur les formules uniques à la feuille de calcul Google:
https://webapps.stackexchange.com/a/44719/29140

Jacob Jan Tuinstra
la source
1
Pour la plupart, cela a fonctionné pour moi (dans Google Sheets) ... sauf que la cellule vide a renvoyé 1 .. J'ai donc changé un peu pour que les cellules vides retournent 0:=COUNTA(SPLIT(A1, " "))-IF(A1 = "",1,0)
CenterOrbit
Nous faisons quelque chose de similaire, mais cela ne fonctionnera pas lorsque les espaces ne sont pas le caractère d'espaces normal (par exemple, les tabulations, etc.). J'aimerais donc trouver une façon un peu intelligente de compter les mots.
Aldo 'xoen' Giambelluca
Salut Aldo, le mieux est de simplement poser votre question ici sur les applications Web !!!
Jacob Jan Tuinstra
3

Légère amélioration de la formule dans cette autre réponse, donc dans le cas où A1 est vide ou s'il a une chaîne vide, il retournera zéro.

= SI (LEN (A1) = 0,0, COUNTA (SPLIT (A1, ""))
Rubén
la source
0

Si vous voulez le faire sur une plage de cellules (c'est-à-dire A1:A25), vous pouvez utiliser la formule ci-dessus, où CHAR(32)est le caractère espace" "

=COUNTA(SPLIT(ARRAYFORMULA(CONCATENATE(A1:A25&CHAR(32)));CHAR(32)))

Cela fonctionne avec des cellules vides, sauf lorsque la cellule initiale est vide.

Enrique Ramírez
la source
0

Un autre:

=COUNTA(SPLIT(TRIM(A1&" #")," "))-1

Cela ajoute simplement un espace et un signe dièse à la fin de tout ce qui se trouve dans la cellule cible, y compris en l'ajoutant à une valeur nulle , de sorte qu'il n'y a jamais d'erreur de rejet du décompte. Ensuite, nous soustrayons simplement ce "faux espace" temporaire à la fin.

Erik Tyler
la source
0

=ARRAYFORMULA(IF(LEN(A3:A), 
 MMULT(IF(IFERROR(SPLIT(IF(LEN(A3:A), A3:A, ), " "))<>"", 1, 0), 
 ROW(INDIRECT("A1:A"&COUNTA(IFERROR(
 QUERY(IF(IFERROR(SPLIT(IF(LEN(A3:A), A3:A, ), " "))<>"", 1, 0), "limit 1", 0)))))^0), ))

0

______________________________________________________________

=ARRAYFORMULA(IF(LEN(A3:A), LEN(REGEXREPLACE(A3:A, "[^\s]", ))+1, ))

0

user0
la source