Как найти совпадения между двумя колонками в Excel: от простых способов до продвинутых

Почему поиск совпадений в Excel — задача №1 для аналитиков

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

Проблема в том, что большинство пользователей ограничиваются функцией ПОИСКПОЗ или ручной проверкой глазом, не подозревая о существовании более эффективных методов. Эта статья раскроет 5 проверенных способов найти совпадения между двумя колонками — от элементарных до автоматизированных, с учётом нюансов больших массивов данных и частичных совпадений. Вы узнаете, как избежать типичных ошибок (например, когда Excel не видит совпадения из-за лишних пробелов) и какие инструменты выбрать для конкретной задачи.

Способ 1: Функция ПРОВЕРКА (EXACT) для точных совпадений

Если вам нужно найти абсолютно идентичные значения (с учётом регистра и пробелов), функция ТОЖДЕСТВ (или EXACT в английской версии) — ваш первый помощник. Она возвращает ИСТИНА, если ячейки полностью совпадают, и ЛОЖЬ в противном случае. Это идеальный вариант для проверки дубликатов в email-адресах, артикулах или серийных номерах.

Как применить:

  1. Добавьте вспомогательный столбец рядом с первой колонкой.
  2. Введите формулу:
    =ТОЖДЕСТВ(A2;B2)

    где A2 — ячейка из первого столбца, B2 — из второго.

  3. Растяните формулу на весь диапазон.
  4. Отфильтруйте столбец по значению ИСТИНА, чтобы увидеть совпадения.

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

=ТОЖДЕСТВ(СЖПРОБЕЛЫ(A2);СЖПРОБЕЛЫ(B2))

Способ 2: Условное форматирование для визуального анализа

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

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

  1. Выделите первую колонку (например, A2:A100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу для определения форматируемых ячеек.
  4. Введите формулу:
    =НЕ(ЕОШИБКА(ПОИСКПОЗ(A2;$B$2:$B$100;0)))
  5. Задайте формат (например, зелёный фон) и нажмите ОК.

Теперь все ячейки в колонке A, которые есть в колонке B, будут подсвечены. Чтобы применить правило ко второй колонке, повторите шаги, поменяв диапазоны местами.

Почему формула возвращает ошибку?

Если вы видите #Н/Д вместо выделения, проверьте:

1. Диапазоны в формуле должны быть абсолютными (со знаком $ перед буквой и цифрой, например $B$2:$B$100).

2. В данных нет пустых ячеек — они сбивают функцию ПОИСКПОЗ.

3. Типы данных совпадают (например, число 123 и текст "123" для Excel — разные значения).

Способ 3: Формулы массива для частичных совпадений

Что делать, если нужно найти не точные копии, а частичные совпадения? Например, когда в одной колонке полные ФИО ("Иванов Петр Сидорович"), а в другой — только фамилии ("Иванов"). Здесь помогут формулы массива с функциями ПОИСК, НАЙТИ или регулярными выражениями (в новых версиях Excel).

Пример формулы для поиска фамилий из колонки B в колонке A:

=ЕСЛИ(СУММПРОИЗВ(--НЕ(ЕОШИБКА(ПОИСК(" "&$B2&" ";$A$2:$A$100))))>0;"Есть";"Нет")

Разберём, как она работает:

  • 🔍 ПОИСК(" "&$B2&" ";...) ищет фамилию из B2, окружённую пробелами (чтобы избежать ложных срабатываний на части слов).
  • 📊 --НЕ(ЕОШИБКА(...)) преобразует результаты в 1 (если найдено) и 0 (если нет).
  • СУММПРОИЗВ суммирует все единицы — если сумма > 0, значит совпадение есть.

Ограничение: формулы массива могут замедлять работу Excel при больших объёмах данных (10 000+ строк). В таких случаях лучше использовать Power Query (см. Способ 5).

📊 Какой объём данных вы обычно обрабатываете в Excel?
До 1 000 строк
1 000–10 000 строк
10 000–50 000 строк
Более 50 000 строк

Способ 4: Функция ВПР (VLOOKUP) для поиска с возвратом данных

Если вам мало просто найти совпадения — нужно ещё извлечь связанные данные из второй таблицы, на помощь придёт ВПР. Например, у вас есть список артикулов в колонке A и соответствующие цены в колонке B, а в колонке D — другой список артикулов, для которых нужно подтянуть цены.

Формула будет такой:

=ЕСЛИНЕОШ(ВПР(D2;$A$2:$B$100;2;ЛОЖЬ);"Цена: " & ВПР(D2;$A$2:$B$100;2;ЛОЖЬ);"Нет в базе")

Что важно учесть:

  • ⚠️ ВПР ищет только в первом столбце диапазона (в примере — колонка A). Если данные в колонке B, а искать нужно в A, поменяйте диапазон на $B$2:$A$100 и номер столбца на 1.
  • 📌 Для поиска по нескольким критериям (например, имя + фамилия) используйте вспомогательный столбец с конкатенацией (=A2&B2) и ищите по нему.
  • ⚡ В Excel 365 и 2021 появилась функция XLOOKUP — она гибче и быстрее ВПР. Пример:
    =XLOOKUP(D2;$A$2:$A$100;$B$2:$B$100;"Нет в базе")

Убедитесь, что:

✔️ В первом столбце диапазона поиска нет дубликатов

✔️ Данные отсортированы по возрастанию (для ускорения поиска)

✔️ Типы данных совпадают (текст/число)

✔️ Нет лишних пробелов (используйте СЖПРОБЕЛЫ)-->

Способ 5: Power Query для больших массивов данных

Если ваши таблицы содержат десятки тысяч строк, обычные формулы начнут тормозить, а условное форматирование — подвисать. Здесь на сцену выходит Power Query (вкладка Данные → Получить данные в Excel 2016+). Этот инструмент позволяет:

  • 🔄 Объединять таблицы по ключевым столбцам (аналог SQL JOIN).
  • 🧹 Очищать данные от пробелов, ошибок и несоответствий.
  • ⚡ Обрабатывать миллионы строк без зависаний.

Пример: найдём совпадения между колонками Артикул_2023 и Артикул_2026:

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

Критический момент: Power Query создаёт связь с исходными данными. Если они изменятся, обновите запрос через Данные → Обновить все.

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

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

Ошибка Причина Решение
Формула не находит совпадений, хотя они есть Лишние пробелы или непечатаемые символы Используйте СЖПРОБЕЛЫ или ПЕЧСИМВ
#Н/Д в функции ВПР Искомое значение отсутствует в первом столбце диапазона Проверьте диапазон или используйте ЕСЛИНЕОШ
Медленная работа файла Слишком много формул массива или условного форматирования Перейдите на Power Query или преобразуйте формулы в значения
Частичные совпадения не находятся Регистр букв или опечатки Приведите данные к одному регистру (ПРОПИСН/СТРОЧН)

Ещё одна распространённая проблема — сравнение чисел и текста. Например, артикул 00123 в текстовом формате и 123 в числовом Excel воспринимает как разные значения. Решение:

  • 📏 Приведите оба столбца к одному формату с помощью ТЕКСТ или ЗНАЧЕН.
  • 🔢 Для чисел используйте =--A2, чтобы преобразовать текст в число.

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

Можно ли найти совпадения в двух колонках на разных листах?

Да, в формулах просто укажите имя листа перед диапазоном. Например:

=ЕСЛИ(СЧЁТЕСЛИ(Лист2!$A$2:$A$100;A2)>0;"Есть";"Нет")

Для ВПР синтаксис аналогичный: =ВПР(A2;Лист2!$A$2:$B$100;2;ЛОЖЬ).

Как найти совпадения с учётом регистра?

Используйте функцию ТОЖДЕСТВ (EXACT) или НАЙТИ вместо ПОИСК (последняя регистронезависима). Пример:

=ЕСЛИ(НЕ(ЕОШИБКА(НАЙТИ(B2;A2)));"Совпадает";"Не совпадает")
Почему ПОИСКПОЗ не работает с текстом?

Функция ПОИСКПОЗ чувствительна к типу данных. Если в одной колонке текст, а в другой — числа, даже визуально одинаковые значения не будут найдены. Решение:

  • Приведите оба столбца к текстовому формату с помощью =ТЕКСТ(A2;"0").
  • Или используйте =ПОИСКПОЗ(ТЕКСТ(A2;"0");ТЕКСТ($B$2:$B$100;"0");0).
Как автоматизировать поиск совпадений при обновлении данных?

Создайте динамический диапазон с помощью Таблицы Excel (Ctrl+T) и используйте Power Query для автоматического обновления. Альтернатива — макрос на VBA:

Sub FindMatches()

Dim rng1 As Range, rng2 As Range, cell As Range

Set rng1 = Sheet1.Range("A2:A" & Sheet1.Cells(Rows.Count, 1).End(xlUp).Row)

Set rng2 = Sheet2.Range("B2:B" & Sheet2.Cells(Rows.Count, 2).End(xlUp).Row)

For Each cell In rng1

If Not IsError(Application.Match(cell.Value, rng2, 0)) Then

cell.Offset(0, 1).Value = "Совпадение"

End If

Next cell

End Sub

Запускайте макрос по кнопке или при открытии файла.

Есть ли разница между ПОИСК и НАЙТИ?

Да, и она критична для точного поиска:

ПОИСКНАЙТИ
РегистронезависимыйРегистрозависимый
Поддерживает подстановочные знаки (*, ?)Не поддерживает
Быстрее работает с большими текстамиТочнее для чувствительного поиска