Количество слов в ячейке
Задача
Предположим, что в ячейке А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 либо считать число слов по нашему алгоритму.
Вот и все. Просто и изящно
Ссылки по теме
- Делим текст на куски
- Склеивание текста из нескольких ячеек
Skip to content
В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в ячейке или диапазоне с учетом и без учета регистра букв.
В Microsoft Excel есть несколько полезных функций, которые могут подсчитывать почти все: функция СЧЁТ для подсчета ячеек с числами, СЧЁТЗ для подсчета непустых ячеек, СЧЁТЕСЛИ и СЧЁТЕСЛИМН для условного подсчета ячеек и ДЛСТР для вычисления длины текстовой строки. Мы рассмотрим различные способы подсчета слов:
- Как посчитать общее количество слов в ячейке
- Как посчитать конкретные слова в ячейке
- Подсчёт с учётом регистра
- Подсчёт определённых слов без учёта регистра
- Как сосчитать общее количество слов в диапазоне
- Как подсчитать конкретные слова в диапазоне
- Как сосчитать слова без использования формул
К сожалению, в Excel нет встроенного инструмента для подсчета количества слов. Но, комбинируя функции, вы можете создавать более сложные выражения для решения практически любой задачи. И мы будем использовать этот подход для подсчета слов в Excel.
Как посчитать общее количество слов в ячейке
Для подсчета слов в ячейке используйте следующую комбинацию функций ДЛСТР, ПОДСТАВИТЬ и СЖПРОБЕЛЫ:
=ДЛСТР(СЖПРОБЕЛЫ( ячейка ))-ДЛСТР(ПОДСТАВИТЬ( ячейка ;» «;»»))+1
Сюда вы подставляете адрес ячейки, в которой вы хотите посчитать слова.
Например, чтобы пересчитать слова в ячейке A2, используйте такое выражение:
=ДЛСТР(СЖПРОБЕЛЫ(A2))-ДЛСТР(ПОДСТАВИТЬ(A2;» «;»»))+1
Затем вы можете скопировать его вниз по столбцу, чтобы найти количество слов в других ячейках столбца A:
Как работает эта формула подсчета слов?
Во-первых, вы используете функцию ПОДСТАВИТЬ, удаляя этим все пробелы в тексте и заменив их пустой строкой («»), чтобы функция ДЛСТР возвратила количество символов без пробелов:
ДЛСТР(ПОДСТАВИТЬ(A2;» «;»»))
После этого вы вычитаете длину строки без пробелов из общей длины строки и добавляете 1 к окончательному количеству слов, поскольку количество слов всегда равно количеству пробелов плюс 1.
Кроме того, вы используете функцию СЖПРОБЕЛЫ, чтобы удалить лишние пробелы в тексте, если они есть. Иногда рабочий лист может содержать много невидимых на первый взгляд пробелов, например, два или более между словами или случайно набранные в начале или в конце текста (то есть начальные и конечные пробелы). И все они могут испортить результаты вашего подсчета слов. Поэтому удаляем все лишние пробелы, кроме обычных между словами.
Приведенную выше формулу для подсчета слов в Excel можно было бы назвать идеальной, если бы не один недостаток: она возвращает число 1 для пустых ячеек. Чтобы исправить это, вы можете добавить оператор ЕСЛИ для проверки незаполненных ячеек:
=ЕСЛИ(A2=»»; 0; ДЛСТР(СЖПРОБЕЛЫ(A2))-ДЛСТР(ПОДСТАВИТЬ(A2;» «;»»))+1)
Как видно на скриншоте выше, расчёт возвращает ноль для пустых ячеек и правильное количество слов для непустых.
Как посчитать конкретные слова в ячейке
Чтобы подсчитать, сколько раз появляется определенное слово, текст или подстрока, используйте следующий шаблон:
=(ДЛСТР( ячейка )-ДЛСТР(ПОДСТАВИТЬ( ячейка ; слово ;»»)))/ДЛСТР( слово )
Например, давайте посчитаем количество появлений слова «напрасно» в A2:
=(ДЛСТР($A2)-ДЛСТР(ПОДСТАВИТЬ($A2;B$1;»»)))/ДЛСТР(B$1)
Совет. Если вы планируете копировать формулу в несколько ячеек, обязательно используйте абсолютные и относительные ссылки, как это сделано в примере выше.
Рассмотрим пошагово, как подсчитывается количество вхождений определенного текста в ячейку
- Функция ПОДСТАВИТЬ удаляет указанное слово из исходного текста.
В этом примере мы удаляем слово, введенное в B1, из исходного текста, расположенного в A2:
ПОДСТАВИТЬ($A2;B$1;»») - Затем функция ДЛСТР вычисляет длину текстовой строки без указанного слова.
В этом примере ДЛСТР(ПОДСТАВИТЬ($A2;B$1;»»)) возвращает длину текста в ячейке A2 после удаления всех символов, содержащихся во всех вхождениях слова «напрасно». - После этого полученное в п.2 число вычитается из общей длины исходного текста:
ДЛСТР($A2)-ДЛСТР(ПОДСТАВИТЬ($A2;B$1;»»)) - Результатом этой операции является количество символов, содержащихся во всех вхождениях целевого слова, которое в этом примере равно 16 (2 вхождения слова «напрасно», по 8 символов в каждом).
- Наконец, посчитанное выше число делится на длину слова. Другими словами, вы делите количество символов, содержащихся во всех вхождениях целевого слова, на количество символов, содержащихся в одном вхождении этого слова. В этом примере 16 делится на 8, и в результате мы получаем 2.
Помимо подсчета количества определенных слов в ячейке, вы можете использовать эту формулу для подсчета вхождений любого текста (подстроки). Например, вы можете подсчитать, сколько раз появляется текст «Вынес»:
Как видите, часть слова здесь тоже была учтена при подсчёте.
Формула с учетом регистра для подсчета определенных слов в ячейке
Как вы, наверное, знаете, в функции Excel ПОДСТАВИТЬ учитывается регистр букв. Поэтому используемая нами формула подсчета слов по умолчанию чувствительна к регистру:
Вы можете в этом убедиться на скриншоте выше.
Формула без учета регистра для подсчета определенных слов в ячейке
Если вам нужно подсчитать вхождения данного слова как в верхнем, так и в нижнем регистре, используйте функцию СТРОЧН или ПРОПИСН внутри ПОДСТАВИТЬ, чтобы преобразовать исходный текст и тот текст, который вы хотите подсчитать, в один и тот же регистр.
=(ДЛСТР( ячейка )-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН( ячейка );СТРОЧН( текст );»»)))/ДЛСТР( текст )
или
=(ДЛСТР( ячейка )-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН( ячейка );ПРОПИСН( текст );»»)))/ДЛСТР( текст )
Например, чтобы подсчитать количество вхождений слова из B2 в ячейке A3 без учета регистра, используйте:
=(ДЛСТР($A3)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН($A3);СТРОЧН(B$2);»»)))/ДЛСТР(B$2)
Как показано на скриншоте ниже, выражение возвращает одно и то же количество слов независимо от того, как набрано слово:
Как сосчитать общее количество слов в диапазоне
Чтобы узнать, сколько слов содержит строка, столбец или диапазон, возьмите формулу, которая подсчитывает общее количество слов в ячейке, и вставьте ее в функцию СУММПРОИЗВ или СУММ:
=СУММПРОИЗВ(ДЛСТР(СЖПРОБЕЛЫ( диапазон ))-ДЛСТР(ПОДСТАВИТЬ( диапазон ;» «;»»))+1)
или
=СУММ(ДЛСТР(СЖПРОБЕЛЫ( диапазон ))-ДЛСТР(ПОДСТАВИТЬ( диапазон ;» «;»»))+1)
СУММПРОИЗВ — одна из немногих функций Excel, которые умеют обрабатывать массивы. Поэтому вы завершаете ввод обычным способом, нажимая клавишу Enter.
Чтобы функция СУММ могла вычислять массивы, ее следует использовать в формуле массива, которая завершается нажатием Ctrl + Shift + Enter вместо обычного ввода Enter.
Например, чтобы подсчитать все слова в столбце A2:A5, используйте один из следующих вариантов:
=СУММПРОИЗВ(ДЛСТР(СЖПРОБЕЛЫ(A2: A5))-ДЛСТР(ПОДСТАВИТЬ(A2: A5;» «;»»))+1)
или
{=СУММ(ДЛСТР(СЖПРОБЕЛЫ(A2: A5))-ДЛСТР(ПОДСТАВИТЬ(A2: A5;» «;»»))+1)}
Как подсчитать конкретные слова в диапазоне
Если вы хотите подсчитать, сколько раз конкретное слово или текст появляется в строке, столбце или же в определённом диапазоне ячеек, используйте аналогичный подход — возьмите формулу для подсчета определенных слов в ячейке и объедините ее с функцией СУММ или СУММПРОИЗВ:
=СУММПРОИЗВ((ДЛСТР( диапазон )-ДЛСТР(ПОДСТАВИТЬ( диапазон ; слово ;»»)))/ДЛСТР( слово))
или
=СУММ((ДЛСТР( диапазон )-ДЛСТР(ПОДСТАВИТЬ( диапазон ; слово ;»»)))/ДЛСТР( слово))
Пожалуйста, не забудьте нажать Ctrl + Shift + Enter
, чтобы правильно использовать функцию СУММ как формулу массива.
Например, чтобы подсчитать все вхождения слова, находящегося в C1, в столбце A2:A5, используйте это выражение:
=СУММПРОИЗВ((ДЛСТР(A2:A5)-ДЛСТР(ПОДСТАВИТЬ(A2:A5; C1;»»)))/ДЛСТР(C1))
Если не нужно учитывать регистр букв, добавьте функцию СТРОЧН, как делали ранее при подсчёте в отдельной ячейке:
=СУММПРОИЗВ((ДЛСТР(A2:A5)-ДЛСТР(ПОДСТАВИТЬ(СТРОЧН(A2:A5); СТРОЧН(C1);»»)))/ДЛСТР(C1))
Как сосчитать слова без использования формул.
Если нужно быстро пересчитать слова в ячейке или в диапазоне, то можно сделать это и без формул. Для этого служит инструмент «Count Words», который входит в надстройку Ultimate Suite for Excel.
Об этом замечательном инструменте я уже много рассказывал, и вот здесь он тоже может пригодиться.
Подробный обзор возможностей инструмента подсчёта слов и отдельных символов в ячейках вы можете посмотреть здесь на нашем сайте.
А сейчас на скриншоте ниже вы видите результаты его применения. Нужно выделить диапазон ячеек (или только одну из них), активировать опцию Count Words, выбрать – как вы хотите получить итоговый результат: в виде числа или формулой. После этого нажимаем кнопку Insert Results. Справа от выделенной области будет вставлен столбец с результатами.
На скриншоте выше вы видите, что результаты подсчета слов при помощи рассмотренных в этой статье формул и с использованием инструмента «Count Words» — одинаковы. Только времени во втором случае у нас уйдёт гораздо меньше.
Вот как можно сосчитать слова в Excel.
Если ни одно из решений, обсуждаемых в этом руководстве, для вас не подошло, пишите в комментариях. Постараюсь помочь.
Быть может, вас также заинтересует:
На чтение 6 мин. Просмотров 17.5k.
Есть одна штука, которую я бы хотел иметь в Excel: подсчет слов в ячейке.
Если вы работаете в MS Word, в строке состояния есть встроенная опция, которая показывает, сколько слов на листе.
В Word есть опция для подсчета слов, но не в Excel. Вы можете посчитать количество ячеек, в которых есть текст, но не фактические слова в них.
В Excel в нашем распоряжении есть функции, с которыми мы можем посчитать почти все. Вы можете создать формулу, которая сможет посчитать слова в ячейке.
Содержание
- Четыре разных способа посчитать слова в Excel
- 1. Формула для подсчета слов в ячейке
- 2. Подсчет слов в диапазоне ячеек
- 3. Подсчет количества слов во всей таблицы с кодом VBA
- 4. Подсчет определенного слова/текстовой строки в диапазоне
- Заключение
Четыре разных способа посчитать слова в Excel
Сегодня в этой статье вы научитесь считать слова в Excel в ячейке или диапазоне ячеек или даже во всей таблице.
Также я покажу вам, как посчитать определенное слово из диапазона ячеек. Теперь без всяких церемоний, давайте начнем.
1. Формула для подсчета слов в ячейке
Сочетание функций ДЛСТР с ПОДСТАВИТЬ
И формула будет (текст в ячейке A1):
= ДЛСТР(A1) — ДЛСТР (ПОДСТАВИТЬ (A1; » «; «»)) + 1
Когда вы ссылаетесь на ячейку, используя эту формулу, она вернет 5 в результате.
И да, у вас есть 5 слов в ячейке.
Как формула работает?
Прежде чем перейти к этой формуле, просто подумайте. В обычном предложении, если у вас восемь слов, у вас определенно будет 7 пробелов в этих словах. Правильно? Это означает, что у вас всегда будет на одно слово больше, чем пробелов.
Идея проста: если вы хотите посчитать слова, подсчитайте пробелы и добавьте единицу.
Теперь, чтобы понять эту формулу, вам нужно разделить ее на три части.
В первой части мы использовали функцию ДЛСТР (LEN) для подсчета количества символов в ячейке A1. А во второй и третьей части мы объединили ПОДСТАВИТЬ (SUBSTITUTE) с ДЛСТР (LEN), чтобы удалить пробелы из ячейки и затем подсчитать символы.
Наше уравнение выглядит так:
= 20 — 16 +1
- 20 — общее количество символов с пробелами
- 16 — символы без пробелов
Когда вы вычтете одно из другого, вы получите количество пробелов, и вам останется добавить один. В результате возвращается число 5, что является общим количеством слов в ячейке.
Когда вы используете приведенную выше формулу, она вернет 1, даже если ячейка пуста, поэтому лучше обернуть ее функцией ЕСЛИ (IF), чтобы избежать этой проблемы.
= ЕСЛИ(ЕПУСТО (A1);0; ДЛСТР(A1) — ДЛСТР(ПОДСТАВИТЬ(A1; » «; «»)) + 1)
Эта формула сначала проверяет ячейку и возвращает количество слов, только если в ячейке есть значение.
Пользовательская функция
Помимо приведенных выше формул, я напишу вам небольшой код для создания Пользовательской функции. Этот код поможет вам создать пользовательскую функцию, которая будет просто возвращать количество слов. Короче говоря, вам не нужно будет сочетать какие-либо функции.
Function MyWordCount(rng As Range) As Integer MyWordCount = UBound(Split(rng.Value, " "), 1) + 1 End Function
Давайте я расскажу вам, как ее использовать.
- Прежде всего, введите этот код в редакторе VBA.
- Затем вернитесь на свой рабочий лист и введите «= MyWordCount(» и сошлитесь на ячейку, в которой у вас есть значение.
И она вернет количество слов.
2. Подсчет слов в диапазоне ячеек
Теперь давайте перейдем на следующий уровень. Здесь вам нужно будет посчитать слова уже в диапазоне ячеек вместо одной ячейки.
Хорошая новость! Можно использовать ту же формулу (добавив небольшое изменение), которую мы использовали выше.
Вот эта формула:
= СУММПРОИЗВ(ДЛСТР(A1:A11)-ДЛСТР(ПОДСТАВИТЬ(A1:A11; » «;»»))+1)
В приведенной выше формуле A1: A11 — это диапазон ячеек, при вводе формулы в результате получим 55.
Как это работает?
Эта формула работает так же, как и первый метод, но только чуть сложнее. Разница лишь в том, что мы завернули ее в СУММПРОИЗВ (SUMPRODUCT) и ссылаемся на весь диапазон вместо одной ячейки.
Вы помните, что СУММПРОИЗВ (SUMPRODUCT) может работать с массивами? Поэтому, когда вы используете эту функцию, она возвращает массив, в котором у вас есть количество слов для каждой ячейки. Далее она суммирует эти цифры и сообщает вам количество слов в столбце.
3. Подсчет количества слов во всей таблицы с кодом VBA
Этот код является одним из списка полезных макросов, который я использую в своей работе, и он может помочь вам подсчитать все слова на листе.
Sub Word_Count_Worksheet() Dim WordCnt As Long Dim rng As Range Dim S As String Dim N As Long For Each rng In ActiveSheet.UsedRange.Cells S = Application.WorksheetFunction.Trim(rng.Text) N = 0 If S <> vbNullString Then N = Len(S) - Len(Replace(S, " ", "")) + 1 End If WordCnt = WordCnt + N Next rng MsgBox "Всего " & Format(WordCnt, "#,##0") & " слов на активном листе" End Sub
Когда вы запустите его, он покажет окно сообщения с количеством слов, которые у вас есть в активном листе.
4. Подсчет определенного слова/текстовой строки в диапазоне
Здесь у нас другая ситуация. Допустим, нам нужно посчитать определенное слово в диапазоне ячеек или проверить, сколько раз значение появляется в столбце.
Разберем на примере.
Ниже у нас есть диапазон из четырех ячеек, и из этого диапазона нам нужно посчитать количество появлений слова «понедельник».
Вот формула для этого:
= СУММПРОИЗВ ((ДЛСТР (A1:A4) — ДЛСТР (ПОДСТАВИТЬ (A1:A4; «понедельник»; «»)) / ДЛСТР(«понедельник»))
И когда вы введете ее, она возвратит количество понедельников. Ответ — 4.
Формула возвращает количество слов (частоту слова) в диапазоне, а не количество ячеек, в которых есть это слово.
Понедельник встречается четыре раза в трех ячейках.
Как это работает?
Чтобы понять эту функцию, вам снова нужно разделить ее на четыре части.
В первой части функция ДЛСТР (LEN) возвращает массив количества символов в ячейках.
Вторая часть возвращает массив подсчета символов в ячейках, удалив слово «понедельник».
В третьей части функция ДЛСТР (LEN) возвращает длину символов слова «понедельник».
После этого вычитаем первую часть из второй, а затем делим ее на третью часть. Возвращен массив с количеством слов «понедельник» в каждой ячейке.
В четвертой части СУММПРОИЗВ (SUMPRODUCT) возвращает сумму этого массива и дает количество понедельников в диапазоне.
Заключение
Всякий раз, когда вы печатаете какой-то текст в ячейке или диапазоне ячеек, вы можете использовать эти методы для контроля количества слов.
Я мечтаю, что когда-нибудь в будущем в Excel появится эта опция. Ну а пока будем пользоваться этими замечательными методами.
Я надеюсь, что статья была полезной для вас. Какой метод вам понравился больше всех?
Не забудьте поделиться своими мнениями со мной в разделе комментариев, для меня это важно. И, пожалуйста, не забудьте поделиться со своими друзьями, я уверен, что они это оценят.
Excel does not have its own tool that lets you simply look at the number of words in a document (like Word does). But is it possible to find out anyway?
Yes it is – but it’s a bit convoluted, and it also only works on one cell at a time. Don’t worry, though – we will see at the end how to make it work on a group of cells. Let’s explore how to count words in Excel.
The Excel Functions We’ll Use to Count Characters
We need to learn about three Excel functions, LEN()
, TRIM()
and SUBSTITUTE()
, before we can use them in the formula.
How to Use the LEN()
Function in Excel
The LEN()
function takes a cell with text content and gives back the number of characters in that cell.
For example, if we write The horse under the three
in a cell, and we use the LEN()
function to calculate the number of characters in that sentence in another cell, we’ll get 25
. You can see how it works here:
By specifying that we want the LEN()
of cell B1 (LEN(B1)
, in cell B2 above), Excel does this calculation for us.
Note: I’ll explain why I included the spelling error («three» instead of «tree») below.
How to Use TRIM()
Function in Excel
The TRIM()
function takes a cell with text content and gives back the same text without any white space at the beginning or end.
For example, say we have a cell that looks like this: The horse under the three
(with 7 spaces before the text and 2 at the end. It has a total length of 34 characters, including the spaces.
The TRIM()
function will give us back The horse under the three
(with just the original 25 characters) without the spaces at the beginning or the end. Here’s what it looks like:
You can see that, similar to the example above with LEN()
, when we put the TRIM()
instructions in cell B4, Excel calculates the correct value in cell B5.
How to Use the SUBSTITUTE()
Function in Excel
The SUBSTITUTE()
function will replace a piece of the text with another bit of text. For example, in the text we have been using there is a spelling error (instead of tree
we have three
). We can fix it using the SUBSTITUTE()
function.
The syntax is SUBSTITUTE(text, old_text, new_text, [instance_num])
, with text
being the text we are going to change. In this case, we’ll have the text we want to change, and the old_text
and the part we want to change (three
) which will be replaced with the new_text
(tree
).
The complete formula is SUBSTITUTE(B4, "three", "tree")
. Note that text in a formula always needs to be put in quotes. Here’s how it works:
Just in case you need to know, instance_num
is an optional parameter that you use in case there are multiple instances of old_text
in the text and you want to change only one of them. But we aren’t using it here.
We have learned how to use the above single functions, and now we need to use them together in a somewhat convoluted way.
Before putting them together, let’s try to understand how we are using them, and then we will build together the complete formula.
How Word Count in Excel Works
Excel does not have a proper word count tool or formula, but there is one thing we can count, and that is characters, as we’ve learned above. Specifically, we are going to count the number of spaces inside the string. And from that, we are going to derive the number of words just adding 1 to the number of spaces.
When we look at our example, we can see that the string The horse under the tree
has four spaces. If we add one, we get five, the total number of words in the sentence.
Counting spaces is also not a trivial task. Since there is not a specific tool or formula that can count just spaces, we need to be a bit creative.
What we are going to do is count the number of characters in the string, and then count the number of characters in the string when the spaces have been removed (we can use SUBSTITUTE(text, " ", "")
for this). Then we’ll take the difference between the two.
The horse under the tree
has 24 characters, while Thehorseunderthetree
has 20 characters. The difference is 4, which is the number of spaces in the original string. If we add 1 we get 5, the number of words.
Putting it into Practice
Now we need to put in a single formula that we have seen in the last paragraph. This formula has three components:
- the length of the sentence with spaces at the beginning or at the end of the sentence removed (we want to count only spaces between the words), so we’ll use
LEN(TRIM(text))
- the length of the string without spaces, in this case, we don’t need to use
TRIM()
as we are removing all spaces, soLEN(SUBSTITUTE(text, " ", ""))
- Then we just add
1
.
The complete formula is: LEN(TRIM(text)) - LEN(SUBSTITUTE(text, " ", "")) + 1
.
How to Create a Custom Function to Count Words in Excel
We have learned how to count words in a cell, but maybe we don’t want to type all that every time we need to count the number of words.
Fortunately, we can solve this by creating a custom function to count words. We can also have a custom function to count the total number of words in multiple cells.
How to Create a Custom Function with Visual Basic for Applications
We can open the VBA editor with Alt + F11
(FN + Alt + F11
for Mac). Then we can go to Insert > Module, and we are ready to write our function.
We can use what we have already written as a starting point, but we need to replace SUBSTITUTE
, as that doesn’t exist in Visual Basic, with the REPLACE
function. So now we’ll have LEN(TRIM(text)) - LEN(REPLACE(text, " ", "")) + 1
.
Let’s name the new function we want to create. I have chosen the name WORDCOUNT
, but you can use any name you want. Just replace it in the two places it’s written with the name of your choice.
Function WORDCOUNT(text)
WORDCOUNT = LEN(TRIM(text)) - LEN(REPLACE(text, " ", "")) + 1
End Function
Once you add this code in the editor, you have created the function. Now you can close the editor and enjoy your new function! But keep in mind that it only works for this workbook.
So now let’s make the function work with more than one cell, and then we can also add it permanently to Excel.
How to Build a Custom Excel Function to Count the Total Number of Words in a Group of Cells
We will now update the function to work with a range of cells to make it a bit more useful. We take the same code as above, and apply it to every cell within a range, summing together the number of words in each cell.
Replace the code we wrote before with the following:
Function WORDCOUNT(rng As Range)
Count = 0
For Each cl In rng
thisCount = LEN(TRIM(cl.Value)) - LEN(REPLACE(cl.Value, " ", "")) + 1
Count = Count + thisCount
Next
WORDCOUNT = Count
End Function
Note: this version works with a single range of cells, and all cells selected must contain text. You could try to make your own more versatile version if you want to, just explore VBA on your own!
Lastly, we want to make sure that our function is available in every Excel Work Book. To do that we have to close the VBA editor and save the Book we are working in as *.xlam
, the Excel Add-In file type.
To do that we can go to File > Save As, give the file a name that will let us recognize it, like «WordCount», chose the format «Excel Add-In (*.xlam)» from the drop-down menu. Don’t change the folder in which you save the file, as it is set automatically to an AddIns folder.
Now that we have created the file, we need to import it into Excel. To do that we go to File > Options > Add-ins. At the bottom of the window select «Excel Add-ins» from the dropdown menu, and click Go…. In the new window use the Browse… button, and there it should open the AddIns folder we have saved the file in. Select it and press Ok, then Ok again. Now the WORDCOUNT()
function will be available every time you use Excel.
Conclusion
In this article, we have learned how to count words in a string in Excel.
And even though Excel does not have a readymade tool for counting words, we learned how to create our own custom function to avoid having to write each formula every time we want to get the number of words in a string.
Finally, we also learned how to expand our function so that it works with any number of cells.
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
Одна из самых полезных задач по работе с текстом в Excel – это автоматический подсчет количества слов или определенных в строке. Существует много разных способов для решения данной задачи, но мы рассмотрим самый простой.
Формула подсчета количества слов в ячейке Excel
Как посчитать количество слов и пробелов в ячейках Excel? Фактически слова в строке разделены символом пробела. Между каждым словом 1 пробел, поэтому пробелов в текстовой строке всегда на единицу меньше чем слов. Простая формула для понимания: количество слов в строке = количество пробелов +1. Другими словами нам нужна формула для подсчета количества пробелов в строке и к результату ее вычисления добавить +1.
Чтобы составить формулу в Excel для подсчета количества слов нам нужно выполнить 3 шага:
- Определить длину исходной строки с пробелами.
- Определить длину исходной строки без пробелов.
- Вычесть от длины строки с пробелами – строку без пробелов.
Выше указанная формула содержит 3 функции. Одна из них функция ПОДСТАВИТЬ, а далее идут две одинаковые ДЛСТР.
Сначала функция ДЛСТР проверяет длину текстовой стирки пока в оригинальном виде в ячейке A1.
=ДЛСТР(A2)
Далее функция ПОДСАВИТЬ удаляет из исходной строки все пробелы:
ПОДСТАВИТЬ(A2;» «;»»)
Помещение функции ПОДСАВИТЬ в качестве аргумента для функции ДЛСТР позволяет нам автоматически определить длину строки без пробелов.
ДЛСТР(ПОДСТАВИТЬ(A2;» «;»»))+1
Обратите внимание! На этом этапе следует добавить +1, ведь последнее слово в тексте не имеет соответствующего ему пробела.
Дальше остались только вычесть от длины оригинального текста длину строки без пробелов и в результате мы автоматически получаем количество слов:
Практическое применения выше описных формул наиболее часто встречается при анализе больших списков ключевых фраз.
Формула подсчета количества символов в ячейке Excel
Как посчитать количество символов в ячейках Excel? Аналогичным способом мы можем подсчитать количество любых символов в слове или целой строке. Для примера посчитаем количество букв «С» в слове Миссисипи:
- Определяем длину исходного слова «Миссисипи» = 9.
- Определяем длину этого же слова, но без буквы «С» — «Мииипи» = 6.
- Вычитаем от исходного слова слово без буквы «С»: 9-6=3.
В результате формула автоматически посчитала количество букв «С» во всех словах:
Примечание. В формуле используется функция ПРОПИСН чтобы сделать все буквы большими в словах так как функция ПОДСТАВИТЬ чувствительна к регистру. А мы ищем большую букву «С» в каждом слове названия городов.