Risposte:
In Google Spreadsheets, lo farei in modo leggermente diverso.
=COUNTA(SPLIT(A1, " "))
La SPLIT
funzione è disponibile solo in Google Spreadsheet e suddivide il contenuto della cella su ogni spazio ( " "
). La COUNT
funzione conterà semplicemente le istanze.
La formula di Excel dà la stessa risposta, ma un po 'più laboriosa:
=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1
Vedi la seguente risposta su quali formule sono uniche per Google Spreadsheet:
https://webapps.stackexchange.com/a/44719/29140
Leggero miglioramento della formula in questa altra risposta, quindi nel caso in cui A1 sia vuoto o se ha una stringa vuota, restituirà zero.
= IF (LEN (A1) = 0,0, COUNTA (SPLIT (A1, ""))
Se vuoi farlo su un intervallo di celle (cioè A1:A25
) puoi usare la formula sopra, dove CHAR(32)
è il carattere dello spazio" "
=COUNTA(SPLIT(ARRAYFORMULA(CONCATENATE(A1:A25&CHAR(32)));CHAR(32)))
Funziona con celle vuote, tranne quando la cella iniziale è vuota.
Un altro:
=COUNTA(SPLIT(TRIM(A1&" #")," "))-1
Questo aggiunge semplicemente un segno di spazio e cancelletto alla fine di qualsiasi cosa si trovi nella cella di destinazione, incluso l'aggiunta a un valore nullo , quindi non ci sono mai errori nel declassare. Quindi stiamo solo sottraendo quel "spazio falso" temporaneo alla fine.
=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)