У меня есть простая электронная таблица Google с несколькими текстовыми строками. Я просто хочу количество слов, содержащихся в каждой ячейке. Могу ли я использовать встроенную функцию электронных таблиц Google?
У меня есть простая электронная таблица Google с несколькими текстовыми строками. Я просто хочу количество слов, содержащихся в каждой ячейке. Могу ли я использовать встроенную функцию электронных таблиц Google?
Ответы:
В 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.
Небольшое улучшение формулы в этом другом ответе, поэтому в случае, если A1 пусто или если у него пустая строка, он вернет ноль.
= IF (LEN (A1) = 0,0, COUNTA (SPLIT (A1, ""))
Если вы хотите сделать это в диапазоне ячеек (то есть A1:A25
), вы можете использовать формулу выше, где CHAR(32)
символ пробела" "
=COUNTA(SPLIT(ARRAYFORMULA(CONCATENATE(A1:A25&CHAR(32)));CHAR(32)))
Это работает с пустыми ячейками, кроме случаев, когда начальная ячейка пуста.
Другая:
=COUNTA(SPLIT(TRIM(A1&" #")," "))-1
Это просто добавляет пробел и знак решетки в конец всего, что находится в целевой ячейке, включая добавление его к нулю , так что никогда не будет ошибок, сбрасывающих счет. Тогда мы просто вычитаем это временное «поддельное пространство» обратно в конце.
=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)