J'ai une simple feuille de calcul Google avec un certain nombre de chaînes de texte. Je veux juste le nombre de mots contenus dans chaque cellule. Existe-t-il une fonction de feuille de calcul Google que je pourrais utiliser?
Dans Google Spreadsheets, je le ferais un peu différemment.
=COUNTA(SPLIT(A1, " "))
La fonction SPLIT
est uniquement disponible dans Google Spreadsheet et divise le contenu de la cellule à chaque espace (" "
). La fonction COUNT
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
Consultez la réponse suivante pour savoir quelles formules sont uniques à Google Spreadsheet:
https://webapps.stackexchange.com/a/44719/2914
Légère amélioration de la formule dans cette autre réponse donc si A1 est vide ou si elle a une chaîne vide, elle retournera zéro.
= IF (LEN (A1) = 0,0, COUNTA (SPLIT (A1, ""))
Si vous voulez faites ceci sur une plage de cellules (_. 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 les cellules vides, sauf lorsque la cellule initiale est vide.
=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), ))
=ARRAYFORMULA(IF(LEN(A3:A), LEN(REGEXREPLACE(A3:A, "[^\s]", ))+1, ))
Un autre:
=COUNTA(SPLIT(TRIM(A1&" #")," "))-1
Cela ajoute simplement un signe d’espace et dièse à la fin de tout ce qui se trouve dans la cellule cible, en l’ajoutant à un zéro, de sorte qu’il n’ya jamais d’erreurs qui jettent le compte. Ensuite, nous ne faisons que soustraire ce "faux espace" temporaire à la fin.