Respuestas:
En las hojas de cálculo de Google, lo haría un poco diferente.
=COUNTA(SPLIT(A1, " "))
La SPLIT
función solo está disponible en la hoja de cálculo de Google y dividirá el contenido de la celda en cada espacio ( " "
). La COUNT
función simplemente contará las instancias.
La fórmula de Excel da la misma respuesta, pero un poco más laboriosa:
=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1
Consulte la siguiente respuesta sobre qué fórmulas son exclusivas de la hoja de cálculo de Google:
https://webapps.stackexchange.com/a/44719/29140
Ligera mejora a la fórmula en esta otra respuesta, por lo que en caso de que A1 esté en blanco o si tiene una cadena vacía, devolverá cero.
= SI (LEN (A1) = 0,0, COUNTA (SPLIT (A1, ""))
Si desea hacer esto en un rango de celdas (es decir A1:A25
), puede usar la fórmula anterior, donde CHAR(32)
está el carácter de espacio" "
=COUNTA(SPLIT(ARRAYFORMULA(CONCATENATE(A1:A25&CHAR(32)));CHAR(32)))
Esto funciona con celdas en blanco, excepto cuando la celda inicial está en blanco.
Otro:
=COUNTA(SPLIT(TRIM(A1&" #")," "))-1
Esto solo agrega un espacio y un signo de libra al final de lo que sea que esté en la celda objetivo, incluida la adición a un valor nulo , por lo que nunca hay errores al descartar el conteo. Entonces solo restamos ese "espacio falso" temporal al final.
=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)