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

Задача

Предположим, что в ячейке А1 у нас есть какой-то текст, а в ячейке B1 нам нужно подсчитать количество слов в этом тексте.

Решение

Простым, но красивым решением для подсчета количества слов в ячейке, будет следующая формула для B1:

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

=IF(ISBLANK(A1);0;LEN(TRIM(A1))-LEN(SUBSTITUTE(A1;" ";""))+1)

Разбор полетов

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

  • ДЛСТР(СЖПРОБЕЛЫ(A1)) - длина исходного текста без лишних пробелов
  • ДЛСТР(ПОДСТАВИТЬ(A1;" ";"")) - длина исходного текста, в котором все пробелы заменены на пустоту, т.е. удалены, т.е. длина текста без пробелов вообще

Ну, а дальше считаем разницу и прибавляем 1, чтобы получить искомое количество слов.

Остается одна маленькая проблема: если ячейка пустая, то наша формула выдает 1. Поэтому добавим функцию ЕСЛИ (IF), которая будет заранее проверять ячейку на предмет пустоты с помощью функции ЕПУСТО (ISBLANK) и выводить 0 либо считать число слов по нашему алгоритму.

Вот и все. Просто и изящно :)

Ссылки по теме

 


SLADE
24.10.2012 23:30:13
Действительно красивое решение.
Намотал на ус.
ZagZag
24.10.2012 23:30:38
Гениально! Когда-то для подсчета слов я писал макрос, а оказалось так просто.
Михаил
24.10.2012 23:31:49
от ЕСЛИ можно избавиться:
=ДЛСТР(СЖПРОБЕЛЫ(A1))-ДЛСТР(ПОДСТАВИТЬ(A1;" ";)+ЕТЕКСТ(A1)
16.04.2015 17:24:24
А можно при помощи формул EXCEL посчитать количество символов в ячейке. нашел макрос но интересно есть способ подобный подсчету слов?
23.08.2016 17:27:11
=ДЛСТР(ПОДСТАВИТЬ(RC[-1];" ";))
18.04.2018 15:10:05
Здравствуйте!
Действительно очень удобно. Спасибо!

А если к примеру, текст идёт через запятую и некоторые выражения состоят из двух слов
Напр.: небо, дремучий лес, озеро = 3 символа
Подскажите пжл. как в этом случае можно просчитать?
29.03.2019 16:14:26
Привет!!!

Может быть кто-нибудь сталкивался с выделением ячеек по количеству слов в ячейке и выделенную цветом в диапазоне всей книги Excel файла.
Столкнулся из-за того, что нужно почистить файл, в котором более 50000 запросов по ключевым фразам. В Яндекс Директ количество слов в фразе не должно быть больше 7, у меня такие слова есть. Их нужно выделить цветом поправить и пустить в работу.

Возможно кто-то знает решение такой задачи. Заранее спасибо!
26.08.2023 08:51:53
Чтобы эта формула не считала тире, то можно применить такой вариант:
=LEN(TRIM(SUBSTITUTE(A1, " – ", " ")))-LEN(SUBSTITUTE(SUBSTITUTE(A1, " – ", " "), " ",))+ISTEXT(A1)
Вместо «–» подставляем свой вариант тире.
Наверх