Здравствуйте, друзья. Сегодня считаем слова в ячейке. В Экселе нет специальной функции для этого, будем пользоваться теми, что есть. Чтобы посчитать, сколько в тексте слов, руководствуемся логикой, что слова всегда разделяются пробелами. А пробелов всегда на один меньше, чем слов.

Если какие-то из использованных здесь функций вам не известны, в конце статьи я дам ссылки на их описание.

То есть, нам нужно посчитать количество пробелов. Для этого определим две величины:

  1. Длина исходной строки в ячейке: ДЛСТР(А1)
  2. Длина той же строки, но без пробелов: ДЛСТР(ПОДСТАВИТЬ(A1;« »;«»)). Здесь функция ПОДСТАВИТЬ удалит все имеющиеся пробелы, а ДЛСТР – определит размер получившегося текста

Теперь, вычтем из первого второе, получим число пробелов в тексте. Добавим к этому единицу, чтобы подсчитать количество слов.

Описанная формула имеет вид: =ДЛСТР(А1)- ДЛСТР(ПОДСТАВИТЬ(A1;« »;«»))+1.

количество слов

Получилось хорошо, но есть две проблемы:

  • Если между словами стоит несколько пробелов (а не один), результат будет ошибочным, т.к. ДЛСТР(А1) вернет большее значение, чем нужно
  • Если ячейка пустая, формула выдаст 1, а не 0

Для решения первой проблемы, обернем первую часть формулы в функцию удаления лишних пробелов: СЖПРОБЕЛЫ(ДЛСТР(А1)).

Функция СЖПРОБЕЛЫ удаляет несколько стоящих подряд пробелов, оставляет вместо них один, а, так же, убирает пробелы перед строкой и после.

Чтобы избавиться от второй проблемы, проверим ячейку на пустоту с помощью функции ЕСЛИ, и только после этого будем считать. После доработки формула будет иметь вид:

=ЕСЛИ(ЕПУСТО(B2);0;ДЛСТР(СЖПРОБЕЛЫ(B2))-ДЛСТР(ПОДСТАВИТЬ(B2;« »;«»))+1).

количество слов в ячейке

Здесь мы избавились от перечисленных проблем. Теперь подсчет количества слов в тексте не будет для вас проблемой! Об использованных функциях можете почитать по ссылкам:

Условная функция ЕСЛИ
Проверка содержимого (ЕПУСТО)
Определение длины текста (ДЛСТР)
Удаление лишних пробелов и непечатаемых символов (СЖПРОБЕЛЫ)
Замена символов в тексте (ПОДСТАВИТЬ)