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

Сравнение данных между двумя столбцами — одна из самых частых задач при работе с Microsoft Excel и Google Таблицами. Вам может понадобиться найти дубликаты в списках клиентов, сопоставить цены из разных прайсов, проверить наличие товаров на складе или выявить расхождения в отчётах. Без правильных инструментов эта задача превращается в мучительное ручное сканирование тысяч строк.

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

Если вы новичок, начните с условного форматирования или функции ВПР — они покрывают 80% задач. Опытным пользователям пригодятся ИНДЕКС-ПОИСКПОЗ для сложных сравнений или Power Query для обработки больших массивов данных. А для тех, кто работает с динамическими диапазонами, мы покажем, как использовать ДВССЫЛ и ФИЛЬТР в новых версиях Excel.

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

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

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

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

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

    (для поиска значений из столбца A в столбце B).

  5. Задайте цвет заполнения (например, жёлтый) и нажмите ОК.

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

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

2. Функция ВПР: поиск первого совпадения

Классическая функция ВПР (или VLOOKUP в английской версии) ищет значение из одного столбца в другом и возвращает данные из указанной колонки. Для проверки совпадений её часто комбинируют с ЕСЛИОШИБКА.

Пример формулы для проверки, есть ли значение из A2 в столбце B:

=ЕСЛИОШИБКА(ВПР(A2; $B$2:$B$100; 1; ЛОЖЬ); "Нет"; "Да")

Расшифровка аргументов:

  • 🔹 A2 — искомое значение.
  • 🔹 $B$2:$B$100 — диапазон поиска (столбец B).
  • 🔹 1 — номер столбца, откуда возвращать данные (здесь тот же столбец B).
  • 🔹 ЛОЖЬ — точный поиск (без приближений).
Почему ВПР может пропустить дубликаты?

Функция ВПР останавливается на первом найденном совпадении. Если в столбце B значение из A2 встречается 3 раза, формула вернёт "Да" только для первого вхождения, а остальные проигнорирует.

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

3. Комбинация ИНДЕКС-ПОИСКПОЗ: поиск всех совпадений

Если ВПР находит только первое совпадение, то duo ИНДЕКС-ПОИСКПОЗ (INDEX-MATCH) позволяет получить все вхождения. Этот метод сложнее, но гибче.

Допустим, у вас в столбце A список товаров, а в столбце B — их наличие на складе. Чтобы найти все строки из A, которые есть в B, используйте:

=ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(0; СЧЁТЕСЛИ($B$2:B2; $A$2:$A$100) + ЕСЛИ($A$2:$A$100=""; 1; 0); 0))

Это формула массива — после ввода нажмите Ctrl+Shift+Enter (в новых версиях Excel работает и без этого).

  • 📌 Как работает:
    • 🔹 СЧЁТЕСЛИ считает, сколько раз каждый элемент из A встречается в B.
    • 🔹 ПОИСКПОЗ(0; ...) находит первую позицию, где счётчик не ноль (т.е. есть совпадение).
    • 🔹 ИНДЕКС возвращает значение из A по найденной позиции.

Условное форматирование|Функция ВПР|ИНДЕКС-ПОИСКПОЗ|Power Query|Ручной поиск-->

⚠️ Внимание: В Excel 365 и 2021 появилась функция ФИЛЬТР, которая упрощает эту задачу:
=ФИЛЬТР(A2:A100; СЧЁТЕСЛИ(B2:B100; A2:A100)>0)

Она сразу возвращает все совпадающие значения без дополнительных манипуляций.

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

Если вам не нужно выделять или извлекать совпадения, а достаточно просто посчитать их количество, используйте СЧЁТЕСЛИ (для одного критерия) или СЧЁТЕСЛИМН (для нескольких).

Примеры:

  • 🔢 Подсчёт, сколько раз значение из A2 встречается в столбце B:
    =СЧЁТЕСЛИ(B:B; A2)
  • 🔢 Проверка совпадений по двум столбцам (например, имя и фамилия):
    =СЧЁТЕСЛИМН($D$2:$D$100; A2; $E$2:$E$100; B2)

    (ищет строки, где значение из A2 есть в D, а из B2 — в E).

Чтобы получить список уникальных значений (которые есть в A, но нет в B), используйте:

=ЕСЛИ(СЧЁТЕСЛИ(B:B; A2)=0; "Уникально"; "")

Удалить пустые строки|Привести текст к одному регистру (например, =ПРОПИСН(A2))|Убрать лишние пробелы (=СЖПРОБЕЛЫ(A2))|Проверить формат данных (текст vs числа)|Отсортировать столбцы для наглядности-->

5. Power Query: сравнение больших таблиц

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

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

Power Query автоматически обновляет данные при изменении исходных таблиц — это удобно для регулярных отчётов.

  • 💡 Совет: Перед объединением проверьте типы данных в столбцах. Если в одном столбце текст, а в другом — числа, совпадений найдено не будет.
  • 📊 Пример: Сравнение прайс-листов поставщиков с актуальными ценами в вашей базе.

6. VBA: автоматизация для продвинутых пользователей

Если вам нужно регулярно сравнивать столбцы по сложным правилам, напишите макрос. Например, этот код найдёт все совпадения между столбцами A и B и выведет их в столбец C:

Sub FindMatches()

Dim ws As Worksheet

Dim lastRowA As Long, lastRowB As Long

Dim i As Long, j As Long

Dim matchCount As Integer

Set ws = ActiveSheet

lastRowA = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

lastRowB = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

matchCount = 1

For i = 2 To lastRowA

For j = 2 To lastRowB

If ws.Cells(i, 1).Value = ws.Cells(j, 2).Value Then

ws.Cells(matchCount, 3).Value = ws.Cells(i, 1).Value

matchCount = matchCount + 1

Exit For ' Прерываем цикл после первого совпадения

End If

Next j

Next i

End Sub

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

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

7. Динамические массивы в Excel 365: современный подход

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

  • 🔹 ФИЛЬТР — возвращает все строки, соответствующие условию:
    =ФИЛЬТР(A2:A100; СЧЁТЕСЛИ(B2:B100; A2:A100)>0)
  • 🔹 УНИК — извлекает уникальные значения:
    =УНИК(A2:A100)
  • 🔹 СОРТ + ФИЛЬТР — для упорядоченного вывода:
    =СОРТ(ФИЛЬТР(A2:A100; СЧЁТЕСЛИ(B2:B100; A2:A100)=0))

    (покажет уникальные значения из A, которых нет в B, в алфавитном порядке).

Преимущество динамических массивов — результат обновляется автоматически при изменении исходных данных, и не нужно протягивать формулы вниз.

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

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

Excel по умолчанию игнорирует регистр при сравнении текста. Чтобы учитывать заглавные/строчные буквы, используйте функцию НАЙТИ или ПОИСК:

=ЕСЛИ(НЕОШ(ПОИСК(A2; B2)); "Совпадает"; "Не совпадает")

Или создайте вспомогательный столбец с приведением к одному регистру:

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

(функция ТЕКСТ с форматом "0" преобразует текст в верхний регистр).

Почему ВПР не находит совпадения, хотя они есть?

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

  • 🔸 В данных есть скрытые символы (пробелы, неразрывные пробелы, переносы строк). Используйте =СЖПРОБЕЛЫ(A2) или =ПЕЧСИМВ(A2) для очистки.
  • 🔸 Разные типы данных (например, в одном столбце текст "123", а в другом — число 123). Преобразуйте данные с помощью =ЗНАЧЕН(A2) или =ТЕКСТ(A2; "0").
  • 🔸 В формуле указан неверный диапазон поиска. Проверьте, что столбец в ВПР включает все нужные строки.
Как сравнить два столбца и вывести совпадения в третий?

Используйте формулу массива (введите и нажмите Ctrl+Shift+Enter в старых версиях Excel):

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(0; СЧЁТЕСЛИ($C$1:C1; $A$2:$A$100) + ЕСЛИ(СЧЁТЕСЛИ($B$2:$B$100; $A$2:$A$100)=0; 1; 0); 0)); "")

Или в Excel 365:

=ФИЛЬТР(A2:A100; СЧЁТЕСЛИ(B2:B100; A2:A100)>0)
Можно ли сравнить столбцы из разных файлов?

Да, есть 3 способа:

  1. Формулы с внешними ссылками: Откройте оба файла и используйте формулу вида:
    =СЧЁТЕСЛИ([Книга2.xlsx]Лист1!$B:$B; A2)

    (убедитесь, что путь к файлу указан правильно).

  2. Power Query: Импортируйте данные из обоих файлов и объедините запросы.
  3. VBA: Напишите макрос, который открывает второй файл и сравнивает данные.

⚠️ При использовании внешних ссылок оба файла должны быть открыты одновременно, иначе формулы вернут ошибку.

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

Для поиска текста, который содержится в ячейке (а не точного совпадения), используйте:

  • 🔹 ПОИСК или НАЙТИ:
    =ЕСЛИ(НЕОШ(ПОИСК("текст"; A2)); "Есть"; "Нет")
  • 🔹 СЧЁТЕСЛИ с подстановочными знаками:
    =СЧЁТЕСЛИ(B:B; ""&A2&"")

    (ищет ячейки в B, которые содержат текст из A2).

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