Как посчитать слова в Excel: формула, примеры и альтернативы
TL;DR
Формула для подсчёта слов в диапазоне Excel использует TRIM, LEN и SUBSTITUTE и учитывает пустые ячейки и лишние пробелы. Для старых версий используйте массивную формулу с Ctrl+Shift+Enter; в Excel 365 можно применять более простые приёмы или Power Query/VBA для сложных случаев.
Подсчёт слов в Excel полезен при проверке объёма текстов, подготовке данных для аналитики или при предварительной обработке контента. В отличие от Word, Excel не имеет встроенной функции для подсчёта слов, но базовых функций достаточно, чтобы составить надёжную формулу.
Что делает формула в двух словах
- TRIM убирает лишние пробелы, оставляя один пробел между словами.
- LEN считает длину строки в символах.
- SUBSTITUTE удаляет пробелы из строки, чтобы узнать число пробелов вычитанием длин.
- IF/логика исключает пустые ячейки, чтобы они не давали ложный счёт.
Основные функции, которые нам понадобятся
- TRIM(text) — удаляет лишние пробелы в начале/конце и сокращает множественные пробелы между словами до одного.
- LEN(text) — возвращает количество символов в строке (включая пробелы и знаки препинания).
- SUBSTITUTE(text, old_text, new_text) — заменяет в строке старый текст на новый; используется, чтобы удалить пробелы.
- SUM, IF, SUMPRODUCT — для агрегирования результатов по диапазону.
Как посчитать символы (кратко)
Для подсчёта символов в одной ячейке используйте:
=LEN(A1)Если нужно суммировать символы в диапазоне A1:A3 и вы хотите простую сумму, примените:
=SUM(LEN(A1),LEN(A2),LEN(A3))Для реального диапазона удобнее использовать SUMPRODUCT или массивные формулы (см. ниже).
Почему подсчёт слов — это подсчёт пробелов
В простом тексте количество слов равно количеству пробелов плюс один — при условии, что между словами ровно один пробел и нет ведущих/концевых пробелов. Следовательно, задача сводится к корректному подсчёту пробелов и учёту пустых ячеек и лишних пробелов.
Проблемы, которые нужно учесть
- Множественные пробелы между словами — будут считаться как дополнительные слова, если не убрать их.
- Ячейки, содержащие только пробелы — выглядят пустыми, но при простом подсчёте дадут ложное количество слов.
- Неразрывные пробелы, табуляция и переносы строк — требуют дополнительной обработки.
- Дефис-слова, сокращения и пунктуация — не всегда однозначно относятся к «словам», но обычно не влияют на простой метод с пробелами.
Базовая рабочая формула (для диапазона)
Это композитная формула, которая учитывает пустые ячейки и лишние пробелы:
=SUM(IF(LEN(TRIM(A1:A3))=0,0,LEN(TRIM(A1:A3))-LEN(SUBSTITUTE(A1:A3," ",""))+1))Пояснение по частям:
- TRIM(A1:A3) — убирает лишние пробелы в каждой ячейке диапазона.
- LEN(TRIM(…)) — возвращает длину «очищённой» строки.
- SUBSTITUTE(A1:A3,” “,””) — удаляет пробелы; LEN(…) для этой строки показывает длину без пробелов.
- Разница двух LEN даёт число пробелов в ячейке.
- +1 превращает количество пробелов в количество слов (если строка не пустая).
- IF(…=0,0,…) исключает ячейки, которые после TRIM пусты.
Важно: в классическом Excel (до появления динамических массивов) эту формулу нужно ввести как массивную, то есть нажать Ctrl+Shift+Enter.
Варианты без Ctrl+Shift+Enter
Если вы не хотите использовать CSE, примените SUMPRODUCT — она корректно обрабатывает диапазоны:
=SUMPRODUCT((LEN(TRIM(A1:A3))>0)*(LEN(TRIM(A1:A3))-LEN(SUBSTITUTE(A1:A3," ",""))+1))Здесь логическое выражение (LEN(TRIM(…))>0) даёт 1 для непустых ячеек и 0 для пустых, что обеспечивает корректный суммарный подсчёт.
Вариант для Excel 365 (новые функции)
Если у вас Excel 365 с функцией TEXTSPLIT и динамическими массивами, подсчёт слов для одной ячейки можно сделать проще:
=COUNTA(TEXTSPLIT(TRIM(A1)," "))Для диапазона A1:A3 в Excel 365 можно комбинировать функции LET и BYROW (если они доступны):
=SUM(BYROW(A1:A3, LAMBDA(r, COUNTA(TEXTSPLIT(TRIM(r)," ")))) )Эти приёмы зависят от наличия новых функций в вашей версии Excel.
Подход через VBA (удобно для больших диапазонов и сложных правил)
Если нужно надёжно считать слова с учётом табов, переносов строк, неразрывных пробелов и других особенностей, можно создать собственную пользовательскую функцию VBA:
Function WordCount(rng As Range) As Long
Dim c As Range, t As String
Dim cnt As Long
For Each c In rng
t = Application.WorksheetFunction.Trim(c.Value)
If Len(t) > 0 Then
cnt = cnt + UBound(Split(t, " ")) + 1
End If
Next c
WordCount = cnt
End FunctionПосле добавления этого макроса в модуль вы можете использовать в листе:
=WordCount(A1:A3)VBA позволяет гибко расширять правила (например, считать дефисные составные слова как одно, удалять пунктуацию и т. п.).
Power Query для подсчёта слов (альтернатива без VBA)
Power Query (Get & Transform) подходит для предобработки большого объёма текстов:
- Загрузите диапазон в Power Query.
- Добавьте шаг очистки: Trim, Replace Values (заменить табы и неразрывные пробелы на обычный пробел).
- Разбейте столбец по разделителю «пробел» (Split Column by Delimiter).
- Подсчитайте кол‑во ненулевых частей или используйте функцию List.Count для строки, предварительно удалив пустые элементы.
Power Query даёт удобные трансформации в ETL‑стиле и подходит для повторяемых задач.
Когда описанный метод даст неверный результат
- Текст содержит табуляцию, неразрывные пробелы (CHAR(160)) или перенос строки — их нужно предварительно заменить на обычный пробел.
- Слова разделены знаком таба: SUBSTITUTE не заменит его, если явно не указать.
- Множественные пробелы между словами — если не использовать TRIM, они создадут завышенный счёт.
- Ячейки с многими пунктуационными знаками (например, «слово,слово») без пробела после запятой — этот метод посчитает «слово,слово» как одно слово.
Совет: перед подсчётом замените символы CHAR(9) (TAB) и CHAR(160) (неразрывный пробел) на обычный пробел с помощью SUBSTITUTE.
Тестовые случаи и критерии приёмки
Критерии приёмки формулы подсчёта слов:
- Пустая ячейка или ячейка только с пробелами даёт 0.
- Для строки с одним словом даёт 1.
- Для строки «слово слово» даёт 2.
- Для диапазона суммирует слова по ячейкам корректно.
Минимальные тесты (пример вход → ожидаемый результат):
- “” → 0
- “ “ → 0
- “слово” → 1
- “два слова” → 2
- “одно два три” (множество пробелов) → 3
- Ячейки A1=”тест”, A2=””, A3=”пример текста” → сумма = 3
Если формула проходит эти кейсы — она готова к использованию в большинстве сценариев.
Быстрая памятка: готовые формулы
Одна ячейка:
=IF(LEN(TRIM(A1))=0,0,LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1)Диапазон (без CSE):
=SUMPRODUCT((LEN(TRIM(A1:A3))>0)*(LEN(TRIM(A1:A3))-LEN(SUBSTITUTE(A1:A3," ",""))+1))Диапазон (CSE‑формула для старых версий):
=SUM(IF(LEN(TRIM(A1:A3))=0,0,LEN(TRIM(A1:A3))-LEN(SUBSTITUTE(A1:A3," ",""))+1))Excel 365 (одна ячейка, если есть TEXTSPLIT):
=COUNTA(TEXTSPLIT(TRIM(A1)," "))
Рекомендации по локализации и кодировке
- В некоторых локализациях Excel десятичный разделитель и синтаксис формул отличаются; в русскоязычной версии разделитель аргументов — точка с запятой (;) вместо запятой. Пример для русской версии:
=SUMPRODUCT((LEN(TRIM(A1:A3))>0)*(LEN(TRIM(A1:A3))-LEN(SUBSTITUTE(A1:A3;" ";""))+1))Проверьте локальные настройки Excel и при необходимости замените запятые на точки с запятой.
Чеклист для внедрения (роль‑ориентированный)
Аналитик:
- Убедиться, что в данных нет неразрывных пробелов или табов.
- Выбрать формулу: SUMPRODUCT для простоты или VBA/Power Query для сложных правил.
Контент‑редактор:
- Проверить тестовые строки (включая много пробелов и знаки препинания).
- Понять, считать ли дефисные составные слова за одно или несколько.
Разработчик (VBA/ETL):
- Написать функцию с учётом специальных символов (CHAR(9), CHAR(160)).
- Добавить обработку переносов строк (vbCrLf) и очистку пунктуации при необходимости.
Примеры практического применения
- Подсчёт слов в колонке с описаниями товара перед экспортом в CMS.
- Валидация заполненности текстовых полей (минимум X слов) при загрузке заявок.
- Предобработка данных для NLP: оценка длины текста до отправки на токенизацию.
Советы по оптимизации и надёжности
- Для больших таблиц SUMPRODUCT работает быстрее, чем массивные CSE‑формулы.
- Для повторяемых ETL‑задач используйте Power Query или VBA.
- Всегда обрабатывайте неразрывные пробелы (CHAR(160)) и табуляции — они часто встречаются при копировании текста из веба.
- Документируйте принятую логику (например, считать ли дефисные слова за одно слово).
Краткое резюме
Подсчёт слов в Excel — задача решаемая стандартными функциями: TRIM, LEN и SUBSTITUTE формируют надёжную основу. Для диапазонов используйте SUMPRODUCT или массивные формулы; в новых версиях Excel доступны TEXTSPLIT и BYROW, а для сложных требований подойдёт VBA или Power Query.
Важно: проверьте локальные настройки разделителей аргументов и предварительно обработайте специальные пробельные символы.
Важно
- Если ваши данные содержат нестандартные пробелы или спецсимволы, предварительно примените SUBSTITUTE для их замены на обычные пробелы.
Примечание
- Примеры формул в статье используют запятую как разделитель аргументов. В русской локали Excel замените запятые на точки с запятой.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone