Как посчитать слова в Excel

Есть одна штука, которую я бы хотел иметь в Excel: подсчет слов в ячейке.

Если вы работаете в MS Word, в строке состояния есть встроенная опция, которая показывает, сколько слов на листе.

строка состояния Word

В Word есть опция для подсчета слов, но не в Excel. Вы можете посчитать количество ячеек, в которых есть текст, но не фактические слова в них.

В Excel в нашем распоряжении есть функции, с которыми мы можем посчитать почти все. Вы можете создать формулу, которая сможет посчитать слова в ячейке.

Четыре разных способа посчитать слова в 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)

Эта формула сначала проверяет ячейку и возвращает количество слов, только если в ячейке есть значение.

Как посчитать слова в Excel

Пользовательская функция

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

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 появится эта опция. Ну а пока будем пользоваться этими замечательными методами.

Я надеюсь, что статья была полезной для вас. Какой метод вам понравился больше всех?

Не забудьте поделиться своими мнениями со мной в разделе комментариев, для меня это важно. И, пожалуйста, не забудьте поделиться со своими друзьями, я уверен, что они это оценят.

Оцените статью
Добавить комментарий

  1. Егор

    Ошибка в формуле подсчета определенного слова в диапазоне:
    Вот формула для этого: = СУММПРОИЗВ ((ДЛСТР (A1:A4) — ДЛСТР (ПОДСТАВИТЬ (A1:A4; «понедельник»; «»)) / ДЛСТР(«понедельник»)) — не хватает скобки: (A1:A4; «понедельник»; «»)))
    Ниже на скриншоте все правильно.

    Ответить