Как посчитать одинаковые слова в Excel: от базовых функций до продвинутых методов

Подсчёт повторяющихся слов в Microsoft Excel — задача, с которой сталкиваются аналитики, копирайтеры, маркетологи и даже студенты. Вы хотите узнать, сколько раз встречается ключевое слово в отчёте? Или нужно выявить самые частые термины в опросе? Возможно, вам требуется очистить текст от дублей перед импортом в другую систему. В любом случае, Excel предлагает несколько способов решить эту задачу — от элементарных формул до автоматизированных скриптов.

Многие пользователи ошибочно думают, что для работы с текстом в Excel нужны специализированные программы вроде Python или R. На деле же даже базовые функции типа СЧЁТЕСЛИ или ПОИСКПОЗ способны справиться с 80% задач. А если данных много, на помощь приходят Power Query или VBA-макросы. Главное — выбрать метод, соответствующий вашему уровню владения программой и объёму текста.

В этой статье мы разберём 5 проверенных способов подсчёта одинаковых слов — от ручных до полуавтоматических. Вы узнаете, как обработать как один столбец, так и целую таблицу, как учесть регистр и знаки препинания, а также как визуализировать результаты. Начнём с самого простого и постепенно перейдём к продвинутым техникам.

1. Базовый метод: функция СЧЁТЕСЛИ для одного столбца

Если все слова, которые нужно посчитать, находятся в одном столбце, а список уникальных терминов у вас уже есть — этот способ для вас. Функция СЧЁТЕСЛИ (или COUNTIF в английской версии) идеально подходит для подсчёта вхождений конкретного слова в диапазоне.

Допустим, у вас в столбце A перечислены товары из заказа, а в столбце D — уникальные названия этих товаров. Чтобы посчитать, сколько раз каждый товар встречается в заказах, введите в ячейку E2 формулу:

=СЧЁТЕСЛИ($A$2:$A$100; D2)

Здесь $A$2:$A$100 — диапазон с исходными данными (зафиксирован абсолютными ссылками), а D2 — ячейка с уникальным словом, которое мы ищем. Растяните формулу вниз — и получите количество вхождений для каждого термина.

  • Плюсы: простота, работает во всех версиях Excel.
  • Минусы: не учитывает регистр (слова "Кот" и "кот" будут считаться одинаковыми), не умеет автоматически выделять уникальные слова.
  • 🔹 Нюанс: если в ячейках несколько слов (например, "красное яблоко"), формула будет искать точные совпадения всей фразы, а не отдельного слова.
⚠️ Внимание: Если в ваших данных есть лишние пробелы или непечатаемые символы, СЧЁТЕСЛИ может их не заметить. Предварительно очистите текст функцией СЖПРОБЕЛЫ или комбинацией ПЕЧСИМВ + ЗАМЕНИТЬ.
📊 Как часто вы работаете с текстовыми данными в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

2. Подсчёт слов в ячейках с несколькими словами

Что делать, если в одной ячейке содержится целый текст (например, отзыв клиента или описание товара), а вам нужно посчитать, сколько раз в нём встречается конкретное слово? Здесь поможет комбинация функций ДЛСТР, ЗАМЕНИТЬ и ПОДСТАВИТЬ.

Формула для подсчёта слова "отлично" в ячейке A2:

= (ДЛСТР(A2) - ДЛСТР(ПОДСТАВИТЬ(A2; "отлично"; ""))) / ДЛСТР("отлично")

Как это работает:

  1. Функция ПОДСТАВИТЬ удаляет все вхождения слова "отлично" из текста.
  2. ДЛСТР сравнивает длину исходного текста и текста без искомого слова.
  3. Разница делится на длину искомого слова — так мы получаем количество вхождений.

Исходный текст (A2)ФормулаРезультат
"Отлично! Сервис отличный, всё отлично работает."= (ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"отлично";"")))/ДЛСТР("отлично")3
"Хороший товар, но дороговато."= (ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"отлично";"")))/ДЛСТР("отлично")0
"отлично, ОТЛИЧНО, Отлично!"= (ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;"отлично";"")))/ДЛСТР("отлично")0

Обратите внимание на третий пример: формула не учитывает регистр! Чтобы исправить это, используйте ПОИСК в массиве (см. следующий раздел) или предварительно приведите текст к нижнему регистру функцией НИЖНРЕГ.

3. Продвинутый подход: формулы массива для учёта регистра

Когда важно различать слова "Кот" и "кот", а также игнорировать знаки препинания, на помощь приходят формулы массива. Они позволяют обрабатывать текст более гибко, но требуют аккуратности при вводе.

Вот универсальная формула для подсчёта слова с учётом регистра (вводится как Ctrl+Shift+Enter в старых версиях Excel или просто Enter в Excel 365):

=СУММ(

--(

НЕ(ОШИБКА(

ПОИСК(

" " & D2 & " ";

" " & ПОДСТАВИТЬ(A2;",";" ") & " "

)

))

)

)

Пояснения:

  • ПОДСТАВИТЬ(A2;",";" ") — заменяем запятые на пробелы, чтобы не мешали поиску.
  • " " & D2 & " " — ищем слово, окружённое пробелами (чтобы не путать "кот" и "котик").
  • --(НЕ(ОШИБКА(...))) — преобразуем логические значения в 1 и 0 для суммирования.

⚠️ Внимание: Эта формула не учитывает слова в начале или конце предложения без пробелов (например, "Кот бежал."). Чтобы исправить это, добавьте в начало и конец текста пробелы вручную или через формулу: " " & A2 & " ".
Как ввести формулу массива в Excel 2019 и старше?

В новых версиях Excel (2019, 365) формулы массива вводятся как обычные — просто нажмите Enter. Фигурные скобки {} добавятся автоматически. В Excel 2016 и ранее нужно нажать Ctrl+Shift+Enter.

4. Автоматическое выделение уникальных слов + подсчёт

Если у вас нет готового списка уникальных слов, его можно сгенерировать автоматически. Для этого понадобятся две функции: УНИК (в Excel 365) или комбинация ЧАСТОТА + ИНДЕКС в старых версиях.

Способ 1. Для Excel 365 (простой):

  1. Выделите ячейку, где хотите получить уникальные слова.
  2. Введите формулу: =УНИК(A2:A100) и нажмите Enter.
  3. Рядом добавьте СЧЁТЕСЛИ для подсчёта каждого слова (как в разделе 1).

Способ 2. Для Excel 2016 и старше (сложнее):

  1. Создайте вспомогательный столбец с формулой: =ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(0; СЧЁТЕСЛИ($B$1:B1; $A$2:$A$100) + ЕСЛИ($A$2:$A$100=""; 1; 0); 0)); "") (вводится как формула массива!).
  2. Растяните её вниз до появления пустых ячеек — это будут уникальные значения.
  3. Используйте СЧЁТЕСЛИ для подсчёта.

Для больших данных (10 000+ строк) эти методы могут тормозить. В таком случае лучше использовать Power Query (см. следующий раздел).

Удалить лишние пробелы (СЖПРОБЕЛЫ)

Привести текст к нижнему регистру (НИЖНРЕГ)

Заменить знаки препинания на пробелы (ПОДСТАВИТЬ)

Разбить текст на отдельные слова (ТЕКСТ.ПОСЛЕ, ТЕКСТ.ДО)-->

5. Power Query: обработка больших текстов без формул

Power Query — единственный инструмент в Excel, который способен эффективно обработать текстовые данные объёмом более 100 000 строк без зависаний. Он позволяет разделить текст на слова, удалить стоп-слова (предлоги, союзы), привести к нижнему регистру и посчитать частоту вхождений — всё в одном интерфейсе.

Пошаговая инструкция:

  1. Выделите исходные данные и нажмите Данные → Из таблицы/диапазона (в Excel 2016+) или Power Query → Из таблицы.
  2. В открывшемся редакторе выделите столбец с текстом, нажмите Преобразовать → Разделить столбец → По разделителю и укажите пробел.
  3. Выделите полученные столбцы со словами, нажмите Преобразовать → Развернуть — так вы получите каждое слово в отдельной строке.
  4. Удалите пустые строки и приведите слова к нижнему регистру (Преобразовать → Регистр → нижний).
  5. Выделите столбец со словами, нажмите Главная → Группировка и выберите операцию "Количество строк".
  6. Нажмите Закрыть и загрузить — результат появится на новом листе.

Преимущества Power Query:

  • ⚡ Обрабатывает миллионы строк без тормозов.
  • 🔄 Легко обновляется при изменении исходных данных (правый клик по таблице → Обновить).
  • 🛠️ Позволяет удалять стоп-слова (например, "и", "в", "на") на этапе преобразования.

6. VBA-макрос для автоматизации подсчёта

Если вам часто приходится считать слова в Excel, имеет смысл написать VBA-макрос. Он позволит обработать данные в один клик и даже сохранить результаты в отдельном файле.

Пример макроса для подсчёта слов в выделенном диапазоне:

Sub CountWords()

Dim rng As Range, cell As Range, dict As Object

Dim words() As String, word As Variant

Dim i As Long, wordCount As Long

' Создаём объект Dictionary для хранения слов

Set dict = CreateObject("Scripting.Dictionary")

' Проходим по каждой ячейке в выделенном диапазоне

For Each cell In Selection

' Разбиваем текст на слова (разделитель - пробел)

words = Split(Application.WorksheetFunction.Trim(cell.Value), " ")

' Добавляем слова в Dictionary

For i = LBound(words) To UBound(words)

word = LCase(Trim(words(i))) ' Приводим к нижнему регистру

If Len(word) > 0 Then

If dict.Exists(word) Then

dict(word) = dict(word) + 1

Else

dict.Add word, 1

End If

End If

Next i

Next cell

' Выводим результаты на новый лист

Sheets.Add

ActiveSheet.Range("A1").Value = "Слово"

ActiveSheet.Range("B1").Value = "Количество"

i = 2

For Each word In dict.Keys

Cells(i, 1).Value = word

Cells(i, 2).Value = dict(word)

i = i + 1

Next word

' Сортируем по убыванию

Range("A1:B" & i - 1).Sort Key1:=Range("B2"), Order1:=xlDescending

End Sub

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите диапазон с текстом на листе и запустите макрос (F5).

⚠️ Внимание: Макрос учитывает только пробелы как разделители. Если в тексте есть запятые, точки с запятой или другие знаки, предварительно замените их на пробелы функцией ПОДСТАВИТЬ или модифицируйте код макроса.

7. Визуализация результатов: диаграммы и условное форматирование

Подсчёт слов — это только половина дела. Чтобы данные было удобно анализировать, их нужно визуализировать. Вот несколько идей:

  • 📊 Гистограмма: Выделите столбец со словами и столбец с количеством, затем нажмите Вставка → Гистограмма. Отсортируйте данные по убыванию для наглядности.
  • 🎨 Облако слов: Для этого понадобится надстройка (например, WordCloud для Excel) или экспорт данных в Python/R.
  • 🔥 Условное форматирование: Выделите ячейки с количеством и примените цветовую шкалу (Главная → Условное форматирование → Цветовые шкалы).
  • 📌 Спарклайны: Маленькие графики в ячейках, показывающие динамику использования слова (если данные привязаны ко времени).

Пример настройки условного форматирования для выделения самых частых слов:

  1. Выделите диапазон с количеством вхождений.
  2. Нажмите Условное форматирование → Правила отбора первых и последних значений → Первые 10 элементов.
  3. Укажите количество элементов (например, 5) и выберите цвет (например, зелёный).

Для динамических данных свяжите диаграмму с таблицей Excel (Вставка → Таблица). Тогда при обновлении исходных данных график будет перестраиваться автоматически.

8. Типичные ошибки и как их избежать

Даже опытные пользователи Excel допускают ошибки при работе с текстовыми данными. Вот самые распространённые из них и способы их решения:

ОшибкаПричинаРешение
Формула не считает слова в начале/конце предложенияОтсутствуют пробелы перед/после искомого словаДобавьте пробелы в формулу: " " & A2 & " "
Слова с разным регистром считаются одинаковымиСЧЁТЕСЛИ нечувствительна к региструИспользуйте НИЖНРЕГ или формулы массива (раздел 3)
Excel "завис" при обработке больших данныхСлишком много формул массива или неоптимизированный код VBAПерейдите на Power Query или разбивайте данные на части
В результатах есть пустые строки или символыВ исходных данных есть непечатаемые символыОчистите текст: =СЖПРОБЕЛЫ(ПЕЧСИМВ(A2))
Формула считает часть слова (например, "кот" в "котик")Нет разделителей между словамиИспользуйте поиск по шаблону: " " & слово & " "

Ещё одна частая проблема — кириллические и латинские символы. Если ваш текст содержит смешанные алфавиты (например, "iPhone X"), убедитесь, что в настройках Windows и Excel установлена правильная кодировка (обычно UTF-8). Для проверки используйте функцию =КОДСИМВ(ЛЕВСИМВ(A2)) — она должна вернуть корректный код символа.

FAQ: Ответы на частые вопросы

Можно ли посчитать слова в Excel Online?

Да, но с ограничениями. В Excel Online доступны базовые функции вроде СЧЁТЕСЛИ и ПОДСТАВИТЬ, но нет Power Query и возможности запуска VBA-макросов. Для сложных задач лучше использовать десктопную версию Excel или Google Sheets (где есть функция QUERY для работы с текстом).

Как посчитать слова в Google Таблицах?

В Google Sheets можно использовать аналогичные формулы:

  • Для подсчёта в одном столбце: =COUNTIF(A:A; D2).
  • Для подсчёта в тексте: = (LEN(A2) - LEN(SUBSTITUTE(A2; "кот"; ""))) / LEN("кот").
  • Для уникальных слов: =UNIQUE(A:A).

Также в Google Таблицах есть функция =REGEXMATCH для работы с регулярными выражениями, что упрощает поиск слов с учётом регистра и знаков препинания.

Как исключить стоп-слова (предлоги, союзы) из подсчёта?

Есть три способа:

  1. Ручной: После получения списка уникальных слов удалите ненужные вручную.
  2. Power Query: На этапе преобразования добавьте фильтр, исключающий слова из вашего стоп-листа (например, "и", "в", "на").
  3. VBA: Модифицируйте макрос из раздела 6, добавив проверку на стоп-слова перед добавлением в Dictionary.

Пример стоп-листа для русского языка: "и", "в", "на", "с", "по", "из", "у", "к", "о", "об", "за", "над", "под", "при".

Можно ли посчитать слова в PDF или Word через Excel?

Прямо в Excel — нет, но можно экспортировать текст из PDF или Word в Excel и затем обработать его. Способы экспорта:

  • Для Word: откройте документ, нажмите Файл → Сохранить как → Текстовый файл (.txt), затем импортируйте в Excel через Данные → Из текста.
  • Для PDF: используйте Adobe Acrobat (Файл → Экспорт → Таблица Excel) или бесплатные онлайн-конвертеры (например, Smallpdf).

После экспорта очистите данные от лишних символов и примените один из методов из этой статьи.

Как посчитать биграммы (парные сочетания слов)?

Биграммы (например, "машинное обучение") считаются аналогично одиночным словам, но с модификацией формул. Пример для Power Query:

  1. Разделите текст на слова (как в разделе 5).
  2. Добавьте пользовательский столбец с формулой [Слово1] & " " & [Слово2] (где Слово1 и Слово2 — соседние слова).
  3. Сгруппируйте данные по этому столбцу и посчитайте количество строк.

Для VBA понадобится модифицировать макрос, чтобы он обрабатывал пары слов вместо одиночных.