Подсчитайте количество слов в строке в Google Sheets


9

У меня есть простая электронная таблица Google с несколькими текстовыми строками. Я просто хочу количество слов, содержащихся в каждой ячейке. Могу ли я использовать встроенную функцию электронных таблиц Google?

Ответы:


9

В Google Spreadsheets я бы сделал это немного иначе.

формула

=COUNTA(SPLIT(A1, " "))

Разъяснения

SPLITФункция доступна только в Google Spreadsheet и разделить содержимое ячейки на каждом пространстве ( " "). COUNTФункция будет просто считать экземпляры.

Формула Excel дает тот же ответ, но немного более трудоемкий:

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

Скриншот

введите описание изображения здесь

замечание

См. Следующий ответ о том, какие формулы являются уникальными для таблицы Google:
https://webapps.stackexchange.com/a/44719/29140.


1
По большей части это работало для меня (в Google Sheets) ... за исключением того, что пустая ячейка вернула 1 .. Поэтому я немного изменил ее, чтобы пустые ячейки возвращали 0:=COUNTA(SPLIT(A1, " "))-IF(A1 = "",1,0)
CenterOrbit

Мы делаем что-то похожее, но это не будет работать, если пробелы не являются символами обычных пробелов (например, табуляции и т. Д.) Поэтому я бы хотел найти немного умный способ подсчета слов.
Альдо 'xoen' Джамбеллука

Привет Альдо, лучше всего просто задать свой вопрос здесь, в веб-приложениях !!!
Джейкоб Ян Туинстра


0

Если вы хотите сделать это в диапазоне ячеек (то есть A1:A25), вы можете использовать формулу выше, где CHAR(32)символ пробела" "

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

Это работает с пустыми ячейками, кроме случаев, когда начальная ячейка пуста.


0

Другая:

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

Это просто добавляет пробел и знак решетки в конец всего, что находится в целевой ячейке, включая добавление его к нулю , так что никогда не будет ошибок, сбрасывающих счет. Тогда мы просто вычитаем это временное «поддельное пространство» обратно в конце.


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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.