7 проверенных способов найти совпадения в одном столбце Excel

При работе с большими массивами данных в Microsoft Excel поиск повторяющихся значений в одном столбце — одна из самых частых задач. Если вы заметили, что в столбце A некоторые ячейки содержат одинаковые данные, а нужно выявить все дубликаты или проверить уникальность каждой записи, стандартные функции сортировки здесь не помогут. Проблема усложняется, когда дубликаты не очевидны (например, скрыты пробелами или регистром), или когда требуется не просто найти совпадения, а автоматически их обработать — удалить, выделить или перенести в отдельный список.

В этой статье разберём 7 методов проверки совпадений — от базовых (с помощью условного форматирования) до продвинутых (формулы массивов и Power Query). Каждый способ проиллюстрирован скриншотами и примерами для Excel 2019/2021/365, но большинство решений совместимы с версиями начиная с Excel 2010. Особое внимание уделим типичным ошибкам, из-за которых формулы не работают, и покажем, как обойти ограничения стандартных инструментов.

1. Условное форматирование: быстрое выделение дубликатов

Самый визуальный способ найти совпадения — использовать условное форматирование. Он подходит, если нужно оперативно выделить повторяющиеся значения цветом, не изменяя структуру таблицы. Метод работает даже в защищённых листах и не требует знания формул.

Алгоритм действий:

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

Excel автоматически просканирует выделенный диапазон и подсветит все дубликаты. Важно: метод выделяет все повторения, включая первое вхождение значения. Если нужно оставить первое вхождение без выделения, используйте формулу (см. раздел 3).

  • ✅ Быстро и без формул.
  • ✅ Визуально наглядно.
  • ❌ Не подходит для автоматизации (например, удаления дубликатов).
  • ❌ Не различает регистр (например, "Товар" и "товар" будут считаться одинаковыми).

2. Функция СЧЁТЕСЛИ: подсчёт повторений

Если нужно не только найти, но и посчитать количество повторений каждого значения в столбце, используйте функцию СЧЁТЕСЛИ. Она возвращает число вхождений указанного критерия в диапазоне. Например, чтобы узнать, сколько раз встречается значение из ячейки A2 в столбце A, введите в соседней ячейке (например, B2):

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

Растяните формулу на весь столбец B. Ячейки со значением >1 укажут на дубликаты. Чтобы автоматически выделить их, добавьте условное форматирование с правилом "Форматировать ячейки, если значение больше 1".

Значение (A) Количество повторений (B)
Яблоко 3
Банан 1
Яблоко 3
Груша 2
⚠️ Внимание: Если в столбце есть пустые ячейки, функция СЧЁТЕСЛИ вернёт 0, что может исказить результаты. Чтобы игнорировать пустые значения, модифицируйте формулу: =ЕСЛИ(A2=""; ""; СЧЁТЕСЛИ($A$2:$A$100; A2)).

3. Формулы массивов: поиск всех дубликатов кроме первого

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

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

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

  • Диапазон $A$2:A2 расширяется по мере растягивания формулы вниз, захватывая только ячейки выше текущей.
  • Если значение в A2 уже встречалось ранее, функция вернёт ИСТИНА.

Чтобы автоматически выделить такие ячейки, примените условное форматирование с правилом "Форматировать ячейки, если формула равна ИСТИНА".

Почему формула не работает с диапазоном $A$2

$A$100?:

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

4. Удаление дубликатов встроенным инструментом

Если цель — не просто найти, а удалить совпадения, используйте встроенную функцию Удалить дубликаты. Она доступна на вкладке ДанныеУдалить дубликаты. Алгоритм:

  1. Выделите столбец с данными (включая заголовок, если он есть).
  2. Нажмите ДанныеУдалить дубликаты.
  3. Убедитесь, что галочка стоит только напротив нужного столбца, и нажмите ОК.
⚠️ Внимание: Инструмент удаляет все повторяющиеся значения, кроме первого вхождения, и необратимо изменяет исходные данные. Перед использованием создайте резервную копию листа (ПравкаПереместить/скопировать).

Ограничения метода:

  • ❌ Не работает с данными, чувствительными к регистру (например, "Товар" и "товар" будут считаться одинаковыми).
  • ❌ Не учитывает пробелы в начале/конце ячеек (используйте СЖПРОБЕЛЫ для очистки).
  • ❌ Не подходит для частичных совпадений (например, поиска "Яблоко" в строке "Зелёное яблоко").
📊 Какой метод поиска дубликатов вы используете чаще?
Условное форматирование
Функция СЧЁТЕСЛИ
Встроенное удаление дубликатов
Power Query
Другой

5. Power Query: продвинутая обработка дубликатов

Для работы с большими наборами данных (тысячи строк) или если нужно сохранить оригинал и создать отдельную таблицу с дубликатами, используйте Power Query (доступен в Excel 2016+ и Office 365). Этот инструмент позволяет:

  • 🔍 Находить дубликаты с учётом/без учёта регистра.
  • 📊 Группировать данные по частоте повторений.
  • 🔄 Автоматически обновлять результаты при изменении исходных данных.

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

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

Power Query сохраняет связь с исходными данными: при их изменении достаточно обновить запрос (ДанныеОбновить все).

Удалите пустые строки в столбце|Приведите текст к единому регистру (например, с помощью =ПРОПИСН() или =СТРОЧН())|Удалите лишние пробелы функцией =СЖПРОБЕЛЫ()|Преобразуйте данные в таблицу (Ctrl+T)

-->

6. Формулы для поиска частичных совпадений

Если нужно найти не точные дубликаты, а частичные совпадения (например, ячейки, содержащие слово "яблоко" в любом регистре), используйте комбинацию функций ПОИСК, НАЙТИ или ЕЧИСЛО. Пример формулы для поиска ячеек, содержащих подстроку из B2:

=ЕЧИСЛО(ПОИСК(B2; A2))

Чтобы проверить столбец A на наличие любой из подстрок из списка в столбце B, используйте формулу массива (введите с Ctrl+Shift+Enter в старых версиях Excel):

=СУММПРОИЗВ(--ЕЧИСЛО(ПОИСК($B$2:$B$10; A2)))>0

Для учёта регистра замените ПОИСК на НАЙТИ. Чтобы выделить найденные совпадения, примените условное форматирование с правилом "Форматировать ячейки, если формула равна ИСТИНА".

7. Макросы VBA: автоматизация поиска дубликатов

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

  • 🔍 Находит все дубликаты в выделенном столбце.
  • 🎨 Выделяет их жёлтым цветом.
  • 📋 Создаёт новый лист с списком уникальных значений и количеством их повторений.

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте новый модуль (InsertModule).
  3. Скопируйте код ниже и закройте редактор.
  4. Выделите столбец с данными и запустите макрос (Alt+F8 → выберите FindDuplicatesВыполнить).
Sub FindDuplicates()

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

Dim ws As Worksheet, newWs As Worksheet

Dim i As Long, key As Variant

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

Set dict = CreateObject("Scripting.Dictionary")

' Получаем выделенный диапазон

Set rng = Selection

Set ws = ActiveSheet

' Подсчитываем повторения

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

cell.Interior.Color = RGB(255, 255, 0) ' Жёлтый цвет

End If

Next cell

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

Set newWs = Worksheets.Add

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

newWs.Cells(1, 1).Value = "Значение"

newWs.Cells(1, 2).Value = "Количество повторений"

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

i = 2

For Each key In dict.Keys

If dict(key) > 1 Then

newWs.Cells(i, 1).Value = key

newWs.Cells(i, 2).Value = dict(key)

i = i + 1

End If

Next key

' Форматируем новый лист

newWs.Columns("A:B").AutoFit

MsgBox "Поиск дубликатов завершён! Результаты на листе 'Дубликаты'.", vbInformation

End Sub

⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). Если ваш файл имеет формат .xlsx, сохраните его как Книга Excel с поддержкой макросов (ФайлСохранить как).

FAQ: Частые вопросы о поиске совпадений в Excel

Как найти дубликаты с учётом регистра?

Стандартные функции Excel (СЧЁТЕСЛИ, ПОИСК) не учитывают регистр. Чтобы обойти это ограничение:

  1. Добавьте вспомогательный столбец с формулой =СТРОЧН(A2) (преобразует текст в нижний регистр).
  2. Ищите дубликаты в этом столбце любым из описанных методов.

Для Power Query: при загрузке данных добавьте шаг преобразования регистра (ПреобразоватьФорматНижний регистр).

Почему формула =СЧЁТЕСЛИ($A$2:$A$100; A2) возвращает неверное количество?

Вероятные причины:

  • В диапазоне есть скрытые символы (пробелы, неразрывные пробелы, символы табуляции). Используйте =СЖПРОБЕЛЫ(A2) для очистки.
  • Ячейки отформатированы как текст/число, но содержат разные типы данных (например, "1" и 1). Приведите данные к единому формату.
  • В формуле указан неверный диапазон (например, $A$2:$A$10 вместо $A$2:$A$100).
Можно ли найти дубликаты в нескольких столбцах одновременно?

Да. Для этого:

  1. Добавьте вспомогательный столбец, объединяющий данные (например, =A2&B2&C2).
  2. Ищите дубликаты в этом столбце любым из описанных методов.

В Power Query выделите нужные столбцы → Добавить столбецНастраиваемый столбец → введите формулу объединения (например, [Column1] & "|" & [Column2]).

Как экспортировать список дубликатов в отдельный файл?

Способы:

  • В Power Query: после группировки данных нажмите ГлавнаяЗакрыть и загрузить в → выберите Новая книга.
  • С макросом: модифицируйте код из раздела 7, добавив строку newWs.Copy перед End Sub, чтобы создать отдельную книгу.
  • Ручной экспорт: скопируйте данные с листа "Дубликаты" (см. раздел 7) и вставьте в новый файл (Ctrl+NCtrl+V).
Почему условное форматирование не находит дубликаты?

Проверьте:

  • Диапазон в правиле форматирования совпадает с выделенным диапазоном (например, $A$2:$A$100, а не A2:A100).
  • В ячейках нет скрытых символов (используйте =ДЛСТР(A2) и =СЖПРОБЕЛЫ(A2) для диагностики).
  • Формат ячеек одинаковый (например, не смешаны текст и числа).
  • Правило применено к правильному листу (иногда правила "залипают" на других листах).

Если проблема остаётся, сбросьте правила (Условное форматированиеУправление правилами → удалите все) и настройте заново.