Réponses:
Dans Google Spreadsheets, je le ferais un peu différemment.
=COUNTA(SPLIT(A1, " "))
La SPLIT
fonction est uniquement disponible dans Google Spreadsheet et divisera le contenu de la cellule sur chaque espace ( " "
). La COUNT
fonction 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
Voir la réponse suivante sur les formules uniques à la feuille de calcul Google:
https://webapps.stackexchange.com/a/44719/29140
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, ""))
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.
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.
=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, ))
=COUNTA(SPLIT(A1, " "))-IF(A1 = "",1,0)