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

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

Но почему так важно выбирать правильный метод? Дело в объёме данных и цели анализа. Например, функция ВПР подойдёт для точного поиска по одному критерию, а условное форматирование визуально выделит совпадения за секунды. Если же вам нужно сравнить тысячи строк с учётом регистра или частичных совпадений — без Power Query или VBA не обойтись. В этой статье разберём каждый вариант с примерами, нюансами и ограничениями.

Перед тем как приступить, проверьте:

  • 📊 Ваши столбцы отсортированы? Несортированные данные могут исказить результаты некоторых методов.
  • 🔍 Нужно ли учитывать регистр? По умолчанию Excel игнорирует разницу между "Иванов" и "иванов".
  • 📌 Есть ли пустые ячейки? Они могут сбивать формулы, если не обработать их заранее.

═══

1. Простой поиск совпадений с помощью функции ЕСЛИ + ПОИСКПОЗ

Это базовый метод, который работает во всех версиях Excel (начиная с 2007 года). Он возвращает ИСТИНА/ЛОЖЬ или пользовательский текст (например, "Есть"/"Нет") для каждой строки. Формула проверяет, существует ли значение из первого столбца во втором.

Допустим, у вас есть два списка в столбцах A (основной) и B (для проверки). В ячейку C2 введите:

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

И протяните её вниз. Здесь:

  • 🔹 ПОИСКПОЗ ищет позицию значения из A2 в диапазоне B2:B100.
  • 🔹 ЕОШИБКА отлавливает ошибку, если совпадения нет.
  • 🔹 НЕ инвертирует результат: если ошибки нет — возвращает ИСТИНА.

⚠️ Внимание: Если в столбце B есть повторяющиеся значения, формула вернёт позицию первого совпадения. Чтобы найти все вхождения, используйте метод с СЧЁТЕСЛИ (см. следующий раздел).

═══

2. Подсчёт совпадений с СЧЁТЕСЛИ: когда важно количество вхождений

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

Формула для ячейки C2:

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

Результат:

  • 📌 0 — совпадений нет.
  • 📌 1 или больше — значение из A2 найдено в столбце B.

Чтобы вывести не количество, а текстовый результат (например, "Дубликат"), оберните формулу в ЕСЛИ:

=ЕСЛИ(СЧЁТЕСЛИ($B$2:$B$100; A2)>0; "Дубликат"; "Уникально")

Как учитывать регистр при подсчёте?

По умолчанию СЧЁТЕСЛИ игнорирует регистр. Чтобы это исправить, используйте формулу массива:

=СУММПРОИЗВ(--(ТОЧНОЕ($B$2:$B$100; A2)))

Введите её с Ctrl+Shift+Enter (в новых версиях Excel 365 достаточно просто Enter).

Метод Формула Учитывает регистр Возвращает
ЕСЛИ+ПОИСКПОЗ =ЕСЛИ(НЕ(ЕОШИБКА(ПОИСКПОЗ(...)))) ❌ Нет Текст/логическое значение
СЧЁТЕСЛИ =СЧЁТЕСЛИ(диапазон; значение) ❌ Нет Количество совпадений
СУММПРОИЗВ+ТОЧНОЕ =СУММПРОИЗВ(--(ТОЧНОЕ(...))) ✅ Да Количество совпадений

═══

3. Условное форматирование: визуальное выделение совпадений

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

Инструкция:

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

⚠️ Внимание: Условное форматирование не обновляется автоматически при изменении данных в столбце B. Чтобы применить изменения, нажмите F9 (пересчёт формул) или вручную обновите правила через Управление правилами.

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

═══

4. Поиск с возвратом данных: ВПР и ИНДЕКС+ПОИСКПОЗ

Если вам нужно не только найти совпадение, но и вернуть связанные данные из другого столбца, используйте ВПР или комбинацию ИНДЕКС+ПОИСКПОЗ. Например, у вас есть список товаров в столбце A и их цены в столбце C, а в столбце B — другой список товаров. Задача: подтянуть цены для совпадающих наименований.

Формула с ВПР (для ячейки D2):

=ЕСЛИОШИБКА(ВПР(B2; $A$2:$C$100; 3; ЛОЖЬ); "Нет данных")

Где:

  • 📍 B2 — искомое значение.
  • 📍 $A$2:$C$100 — таблица для поиска (первый столбец — ключи, третий — цены).
  • 📍 3 — номер столбца с возвращаемыми данными.
  • 📍 ЛОЖЬ — точный поиск.

Выделите ключевой столбец (по которому ищется совпадение) в левой части диапазона|Убедитесь, что в ключевом столбце нет пустых ячеек|Отсортируйте данные по ключевому столбцу (ускорит поиск)|Проверьте, нет ли скрытых символов (пробелов, переносов)-->

⚠️ Внимание: ВПР работает только если искомый столбец находится левее столбца с возвращаемыми данными. Для гибкости используйте ИНДЕКС+ПОИСКПОЗ:

=ЕСЛИОШИБКА(ИНДЕКС($C$2:$C$100; ПОИСКПОЗ(B2; $A$2:$A$100; 0)); "Нет данных")

═══

5. Поиск частичных совпадений с ПОИСК и НАЙТИ

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

Формула для проверки, содержится ли значение из B2 в ячейке A2:

=ЕСЛИ(ЕЧИСЛО(ПОИСК(B2; A2)); "Есть вхождение"; "Нет вхождения")

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

Пример применения:

  • 🔎 Поиск email-доменов: проверка, есть ли в списке адресов домен @company.ru.
  • 🔎 Анализ текста: выявление ключевых слов в отзывах или описаниях.
  • 🔎 Обработка ФИО: поиск по фамилии или инициалам.

═══

6. Power Query: автоматизированное сравнение больших массивов

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

  • 🔄 Объединять таблицы по ключевым столбцам (аналог SQL JOIN).
  • 📊 Фильтровать уникальные/дублирующиеся значения.
  • 🔄 Автоматически обновлять результаты при изменении исходных данных.

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

  1. Выделите оба столбца (например, A1:B100) и нажмите Данные → Из таблицы/диапазонаExcel 2016) или Данные → Получить данные → Из таблицы/диапазонаExcel 365).
  2. В открывшемся редакторе Power Query выделите столбец A, затем перейдите на вкладку Главная → Объединить запросы → Объединить.
  3. Выберите второй запрос (столбец B), тип объединения Внутреннее (для общих значений) или Левое внешнее (для всех значений из первого столбца).
  4. Нажмите ОК и Закрыть и загрузить.

⚠️ Внимание: При объединении больших таблиц (более 100 000 строк) Power Query может тормозить. В этом случае:

  • 🖥️ Разбейте данные на части.
  • 🖥️ Используйте 64-разрядную версию Excel.
  • 🖥️ Оптимизируйте типы данных (замените текст на индексы, если возможно).

═══

7. VBA-макрос для сложных условий

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

Sub FindMatches()

Dim rng1 As Range, rng2 As Range, 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 Not IsError(Application.Match(cell.Value, rng2, 0)) Then

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

End If

Next cell

End Sub

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

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

Application.ScreenUpdating = False

и включите его обратно в конце:

Application.ScreenUpdating = True
-->

═══

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

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

Да, но нужно использовать абсолютные ссылки на внешнюю книгу. Например:

=СЧЁТЕСЛИ([Книга2.xlsx]Лист1!$A$2:$A$100; B2)

Убедитесь, что обе книги открыты, иначе ссылки обнулятся. Для стабильной работы сохраните книги в одной папке и используйте Power Query для объединения данных.

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

Используйте функцию СЖПРОБЕЛЫ, чтобы удалить лишние пробелы перед сравнением:

=ЕСЛИ(СЖПРОБЕЛЫ(A2)=СЖПРОБЕЛЫ(B2); "Совпадает"; "Не совпадает")

Для удаления неразрывных пробелов и других непечатаемых символов применяйте ПЕЧСИМВ:

=ЕСЛИ(ПЕЧСИМВ(A2)=ПЕЧСИМВ(B2); "Совпадает"; "Не совпадает")
Почему ВПР не находит совпадения, хотя они есть?

Частые причины:

  • 🔍 В ячейках есть скрытые символы (пробелы, переносы строк). Проверьте с помощью ДЛСТР(A2) и ПЕЧСИМВ(A2).
  • 🔍 Данные имеют разный тип (например, текст vs число). Преобразуйте формат ячеек (Ctrl+1).
  • 🔍 В ВПР указан неверный номер столбца для возврата данных.
  • 🔍 Диапазон поиска не включает первый столбец с ключами.
Как выделить уникальные значения, которых нет в другом столбце?

Используйте условное форматирование с формулой:

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

Или отфильтруйте данные через Power Query:

  1. Загрузите оба столбца в Power Query.
  2. Выделите первый столбец → Главная → Удалить строки → Удалить дубликаты.
  3. Объедините запросы с типом Левое анти-объединение (оставит только уникальные значения из первого столбца).
Можно ли сравнить два столбца по нескольким критериям одновременно?

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

  • 📌 Объедините критерии в один столбец с помощью &:
    =A2 & "|" & C2

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

  • 📌 Используйте СЧЁТЕСЛИМН (для нескольких условий):
    =СЧЁТЕСЛИМН($B$2:$B$100; A2; $D$2:$D$100; C2)
  • 📌 В Power Query объедините таблицы по нескольким ключам.