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

При сравнении двух списков в Microsoft Excel вы обнаружили, что стандартный визуальный поиск совпадений занимает слишком много времени, а ручная проверка строк на идентичность приводит к ошибкам. Проблема усугубляется, когда столбцы содержат сотни или тысячи записей — в этом случае пропустить дубликат проще простого. На практике 83% пользователей Excel теряют до 2 часов в неделю на поиск совпадающих значений между столбцами, не подозревая о встроенных инструментах для автоматизации этой задачи.

Ключевая сложность заключается в том, что простое выделение одинаковых ячеек не всегда дает нужный результат: Excel может игнорировать регистр, пробелы или скрытые символы. Например, значения "Иванов" и " иванов " (с пробелами) визуально кажутся одинаковыми, но для программы это разные строки. В этой статье разберем 7 методов поиска совпадений — от элементарных формул =ЕСЛИ() до продвинутых инструментов вроде Power Query, — которые покрывают 95% практических сценариев работы с данными.

1. Быстрый поиск совпадений с помощью условного форматирования

Если вам нужно визуально выделить одинаковые значения в двух столбцах без написания формул, используйте условное форматирование. Этот метод подходит для списков до 10 000 строк и работает во всех версиях Excel, начиная с 2007 года. Главное преимущество — наглядность: совпадающие ячейки будут подсвечены цветом, что упрощает анализ.

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

  • 📌 Выделите диапазон первого столбца (например, A2:A100).
  • 🎨 Перейдите на вкладку ГлавнаяУсловное форматированиеСоздать правило.
  • 🔍 Выберите тип правила Использовать формулу для определения форматируемых ячеек.
  • 📝 Введите формулу: =СЧЁТЕСЛИ($B$2:$B$100;A2)>0, где B2:B100 — диапазон второго столбца.
  • 🎨 Задайте цвет заполнения (например, светло-зеленый) и нажмите ОК.

Теперь все значения из первого столбца, которые есть во втором, будут подсвечены. Чтобы найти уникальные (несовпадающие) значения, используйте ту же схему, но с формулой =СЧЁТЕСЛИ($B$2:$B$100;A2)=0.

2. Формулы для поиска совпадений: =ЕСЛИ(), =ВПР(), =СЧЁТЕСЛИ()

Формулы позволяют не только найти совпадения, но и автоматически отметить их в отдельном столбце или вывести список дубликатов. Рассмотрим три самых эффективных подхода:

Формула Пример Когда использовать Ограничения
=ЕСЛИ(СЧЁТЕСЛИ($B$2:$B$100;A2)>0; "Есть"; "Нет") Проверяет, есть ли значение из A2 в столбце B Для маркировки совпадений в отдельном столбце Не показывает, где именно находится совпадение
=ВПР(A2; $B$2:$B$100; 1; ЛОЖЬ) Ищет точное совпадение для A2 в столбце B Для извлечения данных из второго столбца Возвращает ошибку #Н/Д, если совпадений нет
=ПОИСКПОЗ(A2; $B$2:$B$100; 0) Возвращает позицию первого совпадения Для определения порядкового номера строки Не работает с ошибками в данных (например, #ЗНАЧ!)

Для поиска частичных совпадений (например, когда в одном столбце "Иванов И.И.", а в другом — "Иванов Иван Иванович") используйте комбинацию функций =ЕСЛИ(ЕНД(ПОИСК($B$2;A2)); "Совпадает"; "Не совпадает"). Эта формула проверяет, содержится ли текст из ячейки B2 внутри ячейки A2.

📊 Какой метод поиска совпадений вы используете чаще?
Формулы (ЕСЛИ, ВПР)
Условное форматирование
Power Query
Ручной поиск

3. Поиск дубликатов с учетом регистра и пробелов

Excel по умолчанию игнорирует регистр при сравнении текста, но иногда это критично. Например, "АБВ123" и "абв123" могут быть разными кодами. Чтобы найти точные совпадения с учетом регистра, используйте формулу массива:

=ЕСЛИ(МАКС(--(ТОЧНОЕ($A$2:$A$100;B2))); "Есть"; "Нет")

Введите эту формулу как формулу массива (в старых версиях Excel нажмите Ctrl+Shift+Enter, в новых — просто Enter). Функция ТОЧНОЕ() сравнивает строки с учетом регистра и пробелов.

Для удаления лишних пробелов перед сравнением применяйте =СЖПРОБЕЛЫ():

  • 🧹 =ЕСЛИ(СЧЁТЕСЛИ($B$2:$B$100; СЖПРОБЕЛЫ(A2))>0; "Дубликат"; "")
  • 🔍 Проверяет значения после очистки от пробелов в начале/конце.
  • ⚠️ Не удаляет пробелы внутри строки (например, "Иван Иванов" останется без изменений).
Как удалить НЕРАЗРЫВНЫЕ пробелы (спецсимволы)

Используйте функцию =ПОДСТАВИТЬ(A2; СИМВОЛ(160); " "), где СИМВОЛ(160) — это неразрывный пробел.

4. Поиск совпадений в двух столбцах с выводом результатов в третий

Если вам нужно не только найти совпадения, но и собрать их в отдельном списке, используйте следующий алгоритм:

  1. Добавьте вспомогательный столбец с формулой: =ЕСЛИОШИБКА(ПОИСКПОЗ(A2; $B$2:$B$100; 0); "")
  2. Отфильтруйте столбец по пустым значениям — останутся только уникальные записи.
  3. Скопируйте видимые ячейки в новый диапазон (Специальная вставка → Значения).

Для автоматизации этого процесса в Excel 365 или Excel 2021 используйте динамические массивы:

=ФИЛЬТР(A2:A100; ПОИСКПОЗ(A2:A100; B2:B100; 0)<>0)

Эта формула вернет все значения из столбца A, которые есть в столбце B. Аналогично, чтобы найти уникальные значения (те, что есть только в A), используйте:

=ФИЛЬТР(A2:A100; ЕОШ(ПОИСКПОЗ(A2:A100; B2:B100; 0)))

1. Удалите лишние пробелы функцией СЖПРОБЕЛЫ()

2. Приведите текст к одному регистру (ПРОПИСН() или СТРОЧН())

3. Удалите скрытые символы (ПЕЧСИМВ())

4. Проверьте формат ячеек (текст vs число)-->

5. Продвинутый поиск с Power Query (для больших данных)

Если ваши столбцы содержат более 10 000 строк, стандартные формулы Excel будут работать медленно. В этом случае используйте Power Query (доступен в Excel 2016 и новее):

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

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

  • 🚀 Обрабатывает миллионы строк без замедления.
  • 🔄 Автоматически обновляет результаты при изменении исходных данных.
  • 🛠️ Позволяет очищать данные (удалять пробелы, исправлять регистр) на этапе загрузки.

6. Поиск совпадений с учетом ошибок и пустых ячеек

Если ваши столбцы содержат #Н/Д, пустые ячейки или ошибки, стандартные формулы могут давать некорректные результаты. Используйте модифицированные варианты:

Для игнорирования ошибок:

=ЕСЛИ(ЕОШИБКА(ПОИСКПОЗ(A2; $B$2:$B$100; 0)); "Нет"; "Есть")

Для проверки пустых ячеек:

=ЕСЛИ(И(A2<>""; СЧЁТЕСЛИ($B$2:$B$100; A2)>0); "Совпадает"; "")

Если нужно найти совпадения только среди непустых ячеек, используйте:

=ЕСЛИ(И(A2<>""; B2<>""; A2=B2); "Дубликат"; "")
⚠️ Внимание: Функция СЧЁТЕСЛИ() воспринимает пустую ячейку и ячейку с формулой, возвращающей "", как одинаковые значения. Чтобы различать их, используйте =ЕПУСТО().

7. Автоматизация поиска совпадений с помощью VBA

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

Sub FindDuplicates()

Dim rng1 As Range, rng2 As Range

Dim cell As Range

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

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

For Each cell In rng1

If WorksheetFunction.CountIf(rng2, cell.Value) > 0 Then

cell.Interior.Color = RGB(200, 230, 200) ' Светло-зеленый

End If

Next cell

End Sub

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

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

Для поиска уникальных значений замените условие на:

If WorksheetFunction.CountIf(rng2, cell.Value) = 0 Then
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не будет работать. Также отключите защиту от макросов в настройках Excel, если она включена.

Частые ошибки и как их избежать

При поиске совпадений пользователи часто сталкиваются с следующими проблемами:

  • 🔢 Сравнение чисел и текста: Excel воспринимает "123" (текст) и 123 (число) как разные значения. Используйте =ЗНАЧЕН() для преобразования текста в число.
  • 📅 Даты в разных форматах: "01.01.2023" и "01-янв-2023" могут не совпадать. Приведите даты к одному формату функцией =ТЕКСТ().
  • 🌍 Локальные настройки: В некоторых версиях Excel разделителем списка является ;, в других — ,. Проверьте настройки в Файл → Параметры → Дополнительно.

Если после применения формул вы получаете неожиданные результаты, выполните диагностику:

  1. Проверьте формат ячеек (Числовой, Текстовый, Дата).
  2. Используйте =ТИП() для определения типа данных.
  3. Примените =ПЕЧСИМВ() для выявления скрытых символов.

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

Как найти совпадения в двух столбцах, если данные расположены в разных файлах Excel?

Используйте формулу =ВПР() с указанием пути к другому файлу. Пример:

=ВПР(A2; '[Книга2.xlsx]Лист1'!$B$2:$B$100; 1; ЛОЖЬ)

Убедитесь, что оба файла открыты, иначе Excel не сможет обновить ссылки.

Можно ли найти совпадения в двух столбцах Google Sheets?

Да, все описанные методы работают и в Google Sheets. Для условного форматирования используйте ту же формулу =COUNTIF(B2:B100; A2)>0, а для динамических массивов — =FILTER().

Как найти частичные совпадения (например, "Иванов" и "Иванов П.С.")?

Используйте функции =ПОИСК() или =НАЙТИ():

=ЕСЛИ(ЕНД(ПОИСК($B$2; A2)); "Совпадает"; "Не совпадает")

Для регистронезависимого поиска замените ПОИСК на НАЙТИ.

Почему формула =СЧЁТЕСЛИ() не находит совпадения, хотя они есть?

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

  • 🔹 Лишние пробелы (используйте СЖПРОБЕЛЫ()).
  • 🔹 Разный регистр (примените СТРОЧН() или ПРОПИСН()).
  • 🔹 Разные типы данных (текст vs число).
Как выделить цветом совпадающие строки целиком, а не отдельные ячейки?

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

=И(СЧЁТЕСЛИ($B$2:$B$100; $A2)>0; СТРОКА(A2)>=2)

Примените его ко всему диапазону A2:Z100 (замените Z на последнюю колонку).