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

Работа с текстовыми данными в Microsoft Excel часто требует анализа повторяющихся значений — будь то дубликаты в списке клиентов, повторяющиеся категории товаров или идентичные комментарии в опросах. Без правильных инструментов поиск и подсчёт таких повторений может занять часы ручной работы. Однако Excel предлагает несколько способов автоматизировать этот процесс: от базовых функций СЧЁТЕСЛИ до продвинутых инструментов вроде Power Query или VBA.

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

  • 🔍 Находить и подсчитывать точные дубликаты строк или ячеек
  • 📊 Использовать условное форматирование для визуализации повторений
  • 🤖 Автоматизировать процесс с помощью Power Query и макросов
  • 📝 Обрабатывать текст с учётом регистра или частичных совпадений

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

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

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

Допустим, у вас есть список названий продуктов в столбце AA2 по A100), и вы хотите узнать, сколько раз встречается каждый продукт. В ячейку B2 введите формулу:

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

Затем протяните формулу вниз до конца списка. В результате в столбце B отобразится количество повторений для каждого значения из столбца A.

  • Плюсы: простота, не требует дополнительных навыков
  • Минусы: считает только точные совпадения (включая регистр), не подходит для частичных совпадений
⚠️ Внимание: Если в вашем списке есть пустые ячейки, функция СЧЁТЕСЛИ посчитает их как отдельное значение. Чтобы исключить пустые ячейки, добавьте условие: =ЕСЛИ(A2=""; ""; СЧЁТЕСЛИ($A$2:$A$100; A2)).
📊 Какой метод подсчёта дубликатов вы используете чаще?
Формулы (СЧЁТЕСЛИ, СЧЁТЕСЛИМН)
Условное форматирование
Power Query
VBA-макросы
Ручной поиск

2. Подсчёт повторений с учётом нескольких условий (СЧЁТЕСЛИМН)

Если вам нужно посчитать повторяющийся текст с учётом нескольких критериев, используйте функцию СЧЁТЕСЛИМН (COUNTIFS). Например, вы хотите узнать, сколько раз продукт "Яблоко" встречается в категории "Фрукты".

Предположим, названия продуктов находятся в столбце A, а категории — в столбце B. Формула будет такой:

=СЧЁТЕСЛИМН($A$2:$A$100; "Яблоко"; $B$2:$B$100; "Фрукты")

Эта функция позволяет задавать до 127 пар критериев, что делает её незаменимой для комплексного анализа данных. Например, вы можете посчитать повторения текста в определённом диапазоне дат или для конкретного региона.

Функция Пример использования Когда применять
СЧЁТЕСЛИ =СЧЁТЕСЛИ(A2:A100; "Текст") Подсчёт одного критерия в одном столбце
СЧЁТЕСЛИМН =СЧЁТЕСЛИМН(A2:A100; "Текст"; B2:B100; "Категория") Подсчёт с несколькими условиями
СУММПРОИЗВ =СУММПРОИЗВ(--(A2:A100="Текст")) Сложные условия с массивами

Если вам нужно посчитать повторения без учёта регистра, используйте комбинацию функций СЧЁТЕСЛИ и ПРОПИСН:

=СЧЁТЕСЛИ($A$2:$A$100; ПРОПИСН(A2))

3. Условное форматирование для визуализации дубликатов

Иногда достаточно не посчитать, а просто выделить повторяющийся текст — например, чтобы быстро найти дубликаты в большом списке. Для этого подходит условное форматирование.

Выделите диапазон ячеек (например, A2:A100), затем:

  1. Перейдите на вкладку Главная → Условное форматирование → Правила выделения ячеек → Повторяющиеся значения.
  2. В открывшемся окне выберите формат для дубликатов (например, красный текст на жёлтом фоне).
  3. Нажмите ОК.

Excel автоматически выделит все повторяющиеся значения. Этот метод не даёт точного количества дубликатов, но позволяет быстро оценить масштаб проблемы и вручную удалить ненужные повторения.

⚠️ Внимание: Условное форматирование учитывает точные совпадения, включая пробелы и регистр. Если в данных есть скрытые символы (например, неразрывные пробелы), дубликаты могут не выделиться. Чтобы очистить текст, используйте функцию СЖПРОБЕЛЫ.

4. Power Query: обработка больших объёмов данных

Если вам нужно обработать десятки тысяч строк или регулярно анализировать повторяющийся текст, ручные методы будут неэффективны. Здесь на помощь приходит Power Query — инструмент для преобразования и очистки данных, встроенный в Excel (начиная с версии 2016).

Чтобы посчитать повторения с помощью Power Query:

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

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

Как убрать дубликаты навсегда?

Если вам нужно не посчитать, а удалить повторяющиеся строки, в Power Query выберите Главная → Удалить строки → Удалить дубликаты. Система автоматически оставит только уникальные записи.

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

Для пользователей, которым нужно регулярно обрабатывать повторяющийся текст по одним и тем же правилам, подойдёт автоматизация через VBA. Например, макрос может посчитать дубликаты, выделить их цветом и сохранить отчёт в отдельном файле.

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

Sub CountDuplicates()

Dim rng As Range, cell As Range

Dim dict As Object

Set dict = CreateObject("Scripting.Dictionary")

' Выделяем диапазон (например, столбец A)

Set rng = Selection

' Заполняем словарь уникальными значениями и их количеством

For Each cell In rng

If Not dict.exists(cell.Value) Then

dict.Add cell.Value, 1

Else

dict(cell.Value) = dict(cell.Value) + 1

End If

Next cell

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

Sheets.Add.Name = "Дубликаты"

Range("A1").Value = "Значение"

Range("B1").Value = "Количество повторений"

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

Dim i As Integer

i = 2

For Each Key In dict.keys

Cells(i, 1).Value = Key

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

i = i + 1

Next Key

End Sub

Чтобы запустить макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Вернитесь в Excel, выделите диапазон с данными и запустите макрос через View → Macros → CountDuplicates.
⚠️ Внимание: Перед запуском макросов убедитесь, что в настройках Excel разрешено выполнение макросов (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Включить все макросы). В противном случае код не выполнится.

6. Подсчёт частичных совпадений текста

Часто повторяющийся текст не является точной копией, а содержит общие фрагменты. Например, в списке адресов может повторяться название улицы, а в описаниях товаров — часть артикула. Для таких случаев подойдёт комбинация функций ПОИСК, ЕСЛИ и СЧЁТЕСЛИ.

Допустим, вам нужно посчитать, сколько раз в столбце A встречается слово "Москва" (в любом регистре и в составе других слов). Используйте формулу:

=СЧЁТЕСЛИ($A$2:$A$100; "москва")

Звёздочки (*) обозначают любое количество символов до и после искомого слова. Если нужно учитывать регистр, используйте функцию НАЙТИ в массиве:

=СУММПРОИЗВ(--(НЕОШИБКА(НАЙТИ("Москва"; $A$2:$A$100))))

Для более сложных условий (например, поиск нескольких ключевых слов) можно использовать регулярные выражения через VBA или надстройку Power Query.

Использовать подстановочные знаки (* и ?)|Проверить регистр (ПРОПИСН/СТРОЧН)|Исключить пустые ячейки (ЕПУСТО)|Тестировать формулу на небольшом диапазоне-->

7. Продвинутые приёмы: анализ текста по словам

Если вам нужно посчитать не повторяющиеся ячейки, а отдельные слова внутри текста (например, в описаниях или комментариях), стандартные функции Excel не подойдут. Здесь поможет комбинация Power Query и VBA, либо разбор текста через формулы.

Рассмотрим пример с функцией ПСТР и ПОИСК для подсчёта количества упоминаний слова в тексте:

=ДЛСТР(A2) - ДЛСТР(ПОДСТАВИТЬ(A2; "слово"; "")) / ДЛСТР("слово")

Эта формула считает, сколько раз "слово" встречается в ячейке A2. Однако она чувствительна к регистру и не учитывает морфологию (например, "слова" и "словом" будут считаться разными).

Для более точного анализа используйте Power Query:

  1. Загрузите данные в Power Query.
  2. Выберите столбец с текстом и разделите его по разделителю (например, пробел) через Преобразовать → Разделить столбец → По разделителю.
  3. Преобразуйте данные в таблицу частот с помощью группировки.

FAQ: Частые вопросы о подсчёте повторяющегося текста

Можно ли посчитать повторения в нескольких столбцах одновременно?

Да, для этого используйте функцию СЧЁТЕСЛИМН с расширенным диапазоном. Например, чтобы посчитать, сколько раз значение из A2 повторяется в столбцах A, B и C, используйте:

=СЧЁТЕСЛИ($A$2:$A$100; A2) + СЧЁТЕСЛИ($B$2:$B$100; A2) + СЧЁТЕСЛИ($C$2:$C$100; A2)

Или объедините столбцы в один через Power Query и примените группировку.

Как посчитать уникальные значения, исключая первые повторения?

Используйте функцию ЧАСТОТА в сочетании с СОРТИРОВКА и УНИК (в новых версиях Excel). Например:

=УНИК(A2:A100)

Чтобы посчитать количество уникальных значений:

=СЧЁТ(УНИК(A2:A100))
Почему СЧЁТЕСЛИ не считает повторения с пробелами?

Функция СЧЁТЕСЛИ чувствительна к любым символам, включая пробелы. Если в ячейках есть лишние пробелы (например, " Текст" вместо "Текст"), используйте СЖПРОБЕЛЫ для очистки данных:

=СЧЁТЕСЛИ($A$2:$A$100; СЖПРОБЕЛЫ(A2))
Можно ли автоматически удалить все дубликаты, оставив только уникальные значения?

Да, для этого:

  • Выделите диапазон → Данные → Удалить дубликаты.
  • Или используйте Power Query: загрузите данные → Главная → Удалить строки → Удалить дубликаты.
  • В VBA можно написать макрос, который удалит дубликаты и сохранит только первые вхождения.
Как посчитать повторения с учётом синтаксиса (например, email или телефоны)?

Для проверки форматов (например, корректности email) комбинируйте СЧЁТЕСЛИ с функциями проверки:

=СЧЁТЕСЛИ($A$2:$A$100; "@.*")

Для телефонов:

=СЧЁТЕСЛИ($A$2:$A$100; "+7##########")

Для более сложной валидации используйте регулярные выражения в VBA.