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

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

В этой статье мы разберём все методы — от самых простых до профессиональных, — чтобы вы могли выбрать оптимальный вариант под свою задачу. Особое внимание уделим нюансам: что делать, если данные в таблицах расположены по-разному, как учитывать регистр или пробелы, и почему иногда ВПР возвращает ошибку вместо результата. А в конце вас ждёт уникальный лайфхак с использованием сводных таблиц для поиска частичных совпадений — этот приём знают меньше 5% пользователей Excel.

Если вы никогда не сталкивались с сравнением таблиц, начните с первых трёх методов — они не требуют знания формул. Опытным пользователям будут полезны разделы про INDEX+MATCH и Power Query, которые позволяют обрабатывать миллионы строк без зависаний. И не забудьте проголосовать в опросе ниже — какой способ вы используете чаще всего?

📊 Какой метод поиска совпадений в Excel вы используете чаще?
Формулы (ВПР, INDEX+MATCH)
Условное форматирование
Power Query
Макросы/VBA
Делаю вручную

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

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

Чтобы применить условное форматирование для поиска совпадений:

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

    где $D$2:$D$100 — диапазон второй таблицы для сравнения.

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

Теперь все ячейки в первой таблице, которые есть во второй, будут подсвечены. Этот метод работает и в обратную сторону: если выделить вторую таблицу и сравнить её с первой, вы увидите совпадения там.

2. Функция ВПР (VLOOKUP): классический метод поиска

Функция ВПР (или VLOOKUP в английской версии) — самый известный инструмент для поиска совпадений. Она ищет значение в первом столбце указанного диапазона и возвращает данные из другой колонки той же строки. Например, если у вас есть таблица с артикулами товаров и ценами, а во второй таблице только артикулы, ВПР поможет"подтянуть" цены.

Синтаксис функции:

=ВПР(искомое_значение; таблица_для_поиска; номер_столбца; [интервальный_просмотр])

Пример для поиска цены товара по артикулу:

=ВПР(A2; Лист2!$A$2:$B$100; 2; ЛОЖЬ)

где:

  • 📌 A2 — ячейка с артикулом в первой таблице;
  • 📄 Лист2!$A$2:$B$100 — диапазон на втором листе с артикулами (столбец A) и ценами (столбец B);
  • 🔢 2 — номер столбца, откуда брать данные (цены);
  • ЛОЖЬ — точный поиск (без приближений).

Если ВПР возвращает ошибку #Н/Д, это означает, что совпадений не найдено. Чтобы скрыть ошибки, оберните функцию в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ВПР(A2; Лист2!$A$2:$B$100; 2; ЛОЖЬ);"")
Почему ВПР не находит совпадения, хотя они есть?

Причины могут быть следующие:

1. Лишние пробелы — используйте =СЖПРОБЕЛЫ(A2) для очистки данных.

2. Разный регистрВПР чувствительна к заглавным буквам. Решение: =ВПР(ПРОПИСН(A2);...).

3. Числа как текст — если в одной таблице число, а в другой текст"123", совпадения не будет. Проверьте формат ячеек.

4. Неточные диапазоны — убедитесь, что искомое значение находится в первом столбце указанного диапазона.

3. Комбинация INDEX + MATCH: гибкая альтернатива ВПР

Сочетание функций INDEX и MATCH решает главную проблему ВПР — зависимость от положения столбца. С их помощью можно искать совпадения в любом столбце таблицы, а не только в первом. Кроме того, INDEX+MATCH работает быстрее на больших массивах данных.

Формула для поиска совпадающего значения в столбце D второй таблицы и возврата данных из столбца E:

=ИНДЕКС(Лист2!$E$2:$E$100; ПОИСКПОЗ(A2; Лист2!$D$2:$D$100; 0))

Разберём аргументы:

  • 🔍 ПОИСКПОЗ(A2; Лист2!$D$2:$D$100; 0) — ищет позицию значения из A2 в столбце D второй таблицы;
  • 📊 ИНДЕКС(Лист2!$E$2:$E$100;...) — возвращает значение из столбца E на найденной строке.

Преимущества INDEX+MATCH перед ВПР:

  1. Можно искать значение в любом столбце, не только в первом;
  2. Формулу не нужно редактировать при добавлении/удалении столбцов;
  3. Работает на 15–20% быстрее на больших таблицах (от 50 000 строк).

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

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

Пример формулы для подсчёта совпадений значения из A2 в диапазоне Лист2!$D$2:$D$100:

=СЧЁТЕСЛИ(Лист2!$D$2:$D$100; A2)

Если результат > 0, значит совпадение есть. Чтобы вывести список только уникальных значений (без дублей), добавьте условие:

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

Для подсчёта совпадений по нескольким критериям используйте СЧЁТЕСЛИМН:

=СЧЁТЕСЛИМН(Лист2!$D$2:$D$100; A2; Лист2!$E$2:$E$100; B2)

Эта формула ищет строки, где одновременно совпадают значения из A2 (в столбце D) и B2 (в столбце E).

Удалить лишние пробелы (=СЖПРОБЕЛЫ)

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

Проверьте форматы ячеек (текст vs число)

Удалите пустые строки

Сортировка данных (ускорит работу формул)-->

5. Power Query: обработка миллионов строк без формул

Если ваши таблицы содержат десятки тысяч строк, формулы начнут тормозить, а условное форматирование — подвисать. В этом случае спасёт Power QueryExcel 2016+ называется Получить данные). Этот инструмент позволяет объединять таблицы по ключевым полям, фильтровать дубликаты и обрабатывать данные без нагрузки на файл.

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

  1. Перейдите на вкладку Данные → Получить данные → Из других источников → Пустая запрос.
  2. В редакторе Power Query нажмите Главная → Объединить запросы.
  3. Выберите первую таблицу, затем вторую, и укажите столбцы для сопоставления (например, Артикул).
  4. Выберите тип объединения:
    • 🔄 Внутреннее — только совпадающие строки;
    • 🔙 Левое внешнее — все строки из первой таблицы + совпадения;
    • 🔚 Правое внешнее — все строки из второй таблицы + совпадения.
  • Нажмите ОК и Закрыть и загрузить.
  • Результат — новая таблица с объединёнными данными, где совпадения помечены. Преимущества Power Query:

    • 🚀 Обрабатывает миллионы строк без зависаний;
    • 🔄 Обновляет данные одним кликом (Данные → Обновить все);
    • 📊 Позволяет трансформировать данные (удалять столбцы, изменять форматы) до объединения.

    6. Сводные таблицы: поиск частичных совпадений

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

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

    1. Объедините обе таблицы в одну (например, скопируйте данные на новый лист).
    2. Добавьте вспомогательный столбец с формулой, которая извлекает часть текста для сравнения. Например, для поиска совпадений по первым 5 символам артикула:
      =ЛЕВСИМВ(A2;5)
    3. Создайте сводную таблицу (Вставка → Сводная таблица).
    4. Перетащите вспомогательный столбец в область Строки, а нужные данные (например, количество) — в область Значения.
    5. Отфильтруйте строки, где счётчик > 1 — это и будут частичные совпадения.

    Пример применения: у вас есть две таблицы с названиями товаров, но в одной они записаны как"Смартфон Samsung Galaxy A52", а в другой —"Galaxy A52 128GB". Сводная таблица по столбцу с первыми 3–4 словами названия поможет найти такие"неточные" совпадения.

    Как найти совпадения по нескольким столбцам в сводной таблице?

    1. Создайте дополнительный столбец, объединяющий ключевые поля через разделитель, например:

    =A2 &"|" & B2

    где A2 — артикул, B2 — цвет.

    2. Постройте сводную таблицу по этому столбцу.

    3. Совпадения будут там, где комбинация"артикул|цвет" повторяется.

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

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

    Sub FindMatches
    

    Dim ws1 As Worksheet, ws2 As Worksheet

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

    Dim findValue As Variant

    ' Укажите листы и диапазоны для сравнения

    Set ws1 = ThisWorkbook.Sheets("Лист1")

    Set ws2 = ThisWorkbook.Sheets("Лист2")

    Set rng1 = ws1.Range("A2:A100")' Диапазон первой таблицы

    Set rng2 = ws2.Range("D2:D100")' Диапазон второй таблицы

    ' Очищаем предыдущее форматирование

    rng1.Interior.ColorIndex = xlNone

    rng2.Interior.ColorIndex = xlNone

    ' Ищем совпадения

    For Each cell In rng1

    findValue = Application.Match(cell.Value, rng2, 0)

    If Not IsError(findValue) Then

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

    rng2.Cells(findValue, 1).Interior.Color = RGB(255, 255, 0)

    End If

    Next cell

    End Sub

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

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

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

    • Мгновенная обработка даже миллиона строк;
    • 🎨 Гибкое форматирование результатов (цвета, шрифты, комментарии);
    • 🔄 Возможность сохранять результаты в новый файл автоматически.

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

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

    ⚠️ Внимание: Если вы используете ВПР или ПОИСКПОЗ для поиска по неотсортированным данным, всегда устанавливайте последний аргумент в 0 (точный поиск). Иначе функция может вернуть приблизительное совпадение, что приведёт к ошибкам в отчётах.

    Топ-5 проблем и решений:

    Проблема Причина Решение
    Формула возвращает #Н/Д, хотя совпадение есть Лишние пробелы или разный регистр Используйте =СЖПРОБЕЛЫ и =ПРОПИСН для очистки данных
    ВПР работает очень медленно Большой диапазон поиска или неоптимизированные формулы Замените на ИНДЕКС+ПОИСКПОЗ или используйте Power Query
    Условное форматирование не обновляется Диапазоны в формуле не зафиксированы знаком $ Проверьте, чтобы адреса были абсолютными: $A$2:$A$100
    Совпадения не находятся при сравнении чисел и текста Разные форматы ячеек (например,"100" vs 100) Преобразуйте данные в один формат: =--A2 (текст в число)
    Power Query не видит изменения в исходных данных Не обновлён запрос Нажмите Данные → Обновить все или настройте автоматическое обновление
    ⚠️ Внимание: При сравнении больших таблиц (от 100 000 строк) избегайте вложенных формул типа =ЕСЛИ(СЧЁТЕСЛИ(...); ВПР(...);""). Они тормозят файл и могут привести к сбою. Вместо этого используйте Power Query или VBA.

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

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

    Да, для этого используйте ссылки на внешние книги. Например, в формуле ВПР укажите:

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

    Обе книги должны быть открыты. Для Power Query выберите источник данных Из файла → Из Excel.

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

    Используйте ИНДЕКС+ПОИСКПОЗ или Power Query. В первом случае формула будет выглядеть так:

    =ИНДЕКС(Лист2!$C$2:$C$100; ПОИСКПОЗ(A2; Лист2!$E$2:$E$100; 0))

    где поиск идёт в столбце E, а результат берётся из столбца C.

    Почему СЧЁТЕСЛИМН не находит совпадения, хотя они есть?

    Скорее всего, не совпадают форматы данных. Проверьте:

    • 🔹 Числа хранятся как текст (или наоборот);
    • 🔹 Есть скрытые символы (пробелы, неразрывные пробелы, перenosы строк);
    • 🔹 Даты записаны в разных форматах (например,"01.12.2023" vs"1-Дек-23").

    Решение: приведите данные к одному формату с помощью =ДАТАЗНАЧ или =ЗНАЧЕН.

    Как выделить цветом совпадающие строки целиком, а не только ячейки?

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

    1. Выделите диапазон (например, A2:D100).
    2. Создайте правило с формулой:
      =НЕ(ЕОШИБКА(ПОИСКПОЗ($A2; Лист2!$A$2:$A$100; 0)))
    3. Укажите формат для всей строки (на вкладке Формат → Залить).

    Знак $ перед A фиксирует столбец, чтобы правило применялось ко всей строке.

    Можно ли автоматически удалить строки без совпадений?

    Да, с помощью Power Query или VBA. В Power Query:

    1. Объедините таблицы с типом Внутреннее объединение.
    2. Удалите столбцы с null (это строки без совпадений).
    3. Загрузите результат обратно в Excel.

    В VBA используйте код для удаления строк, где Application.Match возвращает ошибку.