23.07.2015

Excel: определяем количество слов в ячейке

Работа с текстом
Опубликовано: 23.07.2015 | 1464

 Задача

Предположим, ваш список ключей имеет довольно длинные запросы, от которых нужно избавиться. Весь текст в столбце А; в столбце В мы хотим видеть соответствующие цифры – количество слов в каждой из ячеек.

Решение

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

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

Логика решения проста: в любой ячейке пробелов на 1 меньше, чем слов. Это значит, что количество пробелов можно определить, отняв от длины исходного текста длину текста без пробелов.

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

Для лучшего понимания разобьём нашу формулу на составляющие:

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

Теперь +1 к выявленной разнице, чтобы получить нужное нам количество слов.

Но может возникнуть правомерный вопрос: если ячейка окажется пустой, алгоритм выведет в качестве ответа единицу? Все верно. И чтобы избежать ошибки мы изначально проверяем ячейку на предмет пустоты посредством функции ЕПУСТО(A1). В случае, если в ячейке действительно нет текста, алгоритм завершается с ответом – 0.

Пусть ваши решения в работе с Excel будут изящными :)

Автор: Webmart Group



Статьи по теме