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

Почему поиск совпадений между таблицами — ключевая задача в Excel

Работа с двумя таблицами данных в Microsoft Excel или Google Sheets часто требует поиска общих значений: это могут быть совпадающие имена клиентов, артикулы товаров, адреса email или любые другие идентификаторы. Без правильных инструментов такое сравнение превращается в рутинную проверку каждой строки, что занимает часы и чревато ошибками. Например, при сверке прайс-листов поставщиков, анализе дублирующихся записей в базе или проверке выполнения заказов.

В этой статье мы разберём 5 рабочих методов — от элементарных формул до автоматизированных решений с Power Query и VBA. Вы узнаете, как:

  • 🔍 Использовать функцию ВПР для поиска совпадений по одному столбцу
  • 🎨 Применять условное форматирование, чтобы визуально выделить дубли
  • 📊 Сравнивать таблицы с помощью сводных таблиц и GETPIVOTDATA
  • ⚡ Автоматизировать процесс через Power Query (без формул!)
  • 🤖 Писать простые макросы VBA для сложных сравнений

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

📊 Как часто вам приходится сравнивать таблицы в Excel?
Ежедневно
Несколько раз в неделю
Редко, но методично
Никогда не делал этого

Метод 1: Функция ВПР (VLOOKUP) — классика для поиска совпадений

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

Допустим, у вас есть две таблицы: Таблица 1 (диапазон A2:B10) с данными о клиентах и Таблица 2 (диапазон D2:E15) с заказами. Нужно проверить, какие клиенты из первой таблицы сделали заказы (совпадение по столбцу с email).

=ВПР(D2; $A$2:$B$10; 2; ЛОЖЬ)

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

  • 📌 D2 — ячейка с искомым значением (email клиента из второй таблицы).
  • 📌 $A$2:$B$10 — диапазон первой таблицы (фиксируем ссылки $, чтобы копировать формулу вниз).
  • 📌 2 — номер столбца в диапазоне, откуда брать данные (в нашем случае — фамилия клиента).
  • 📌 ЛОЖЬ — точный поиск (без приближений).
⚠️ Внимание: Если ВПР возвращает ошибку #Н/Д, это означает, что совпадения нет. Чтобы скрыть ошибки, оберните формулу в ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(ВПР(D2; $A$2:$B$10; 2; ЛОЖЬ); "")

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

  • ✅ Простота — подходит для новичков.
  • ✅ Работает во всех версиях Excel (включая Excel 2010 и Excel 365).

Недостатки:

  • ❌ Медленно работает с большими таблицами (более 10 000 строк).
  • ❌ Требует, чтобы искомое значение было в первом столбце диапазона.

Метод 2: Условное форматирование — визуальное выделение дублей

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

Пример: у вас две таблицы с артикулами товаров (A2:A20 и C2:C25). Нужно выделить повторяющиеся артикулы в первой таблице.

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

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

Формула Что делает Пример применения
=СЧЁТЕСЛИ(диапазон; ячейка)>0 Выделяет ячейки, которые встречаются в другом диапазоне Сравнение списков email или артикулов
=ПОИСКПОЗ(ячейка; диапазон; 0) Выделяет ячейки, для которых есть точное совпадение Проверка наличия кода в другой таблице
=И(СЧЁТЕСЛИ(...); СЧЁТЕСЛИ(...)) Выделяет ячейки, соответствующие нескольким условиям Совпадение и по email, и по телефону
⚠️ Внимание: Условное форматирование не добавляет новые данные, а только визуально выделяет ячейки. Если вам нужны результаты для дальнейшей обработки (например, фильтрация), используйте формулы из Метода 1 или Метода 3.

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

Метод 3: Сводные таблицы и GETPIVOTDATA — для сложного анализа

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

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

  1. Объедините обе таблицы в одну (например, скопируйте данные из второй таблицы под первой).
  2. Добавьте вспомогательный столбец с указанием источника (например, "Таблица 1" и "Таблица 2").
  3. Создайте сводную таблицу:
    • 📌 В Строки перетащите столбец с уникальными идентификаторами (email, артикул).
    • 📌 В Значения добавьте вспомогательный столбец и настройте Подсчёт.
    • 📌 Отфильтруйте строки, где подсчёт равен 2 (значит, значение есть в обеих таблицах).

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

=GETPIVOTDATA("Количество"; $A$3; "Артикул"; E2)

Где:

  • 📌 $A$3 — ячейка в сводной таблице.
  • 📌 "Артикул" — название поля.
  • 📌 E2 — ячейка с искомым артикулом.
Как обновить сводную таблицу после изменения данных?

Чтобы данные в сводной таблице актуализировались, нажмите на неё правой кнопкой и выберите Обновить. Если источник данных изменился (например, добавились строки), сначала обновите диапазон в Параметры → Источник данных.

Метод 4: Power Query — мощный инструмент для больших данных

Power Query (или Get & Transform в новых версиях Excel) — это встроенный инструмент для импорта, преобразования и объединения данных. Он позволяет сравнивать таблицы без формул, что особенно удобно для обработки десятков тысяч строк.

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

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

Power Query автоматически обновляет результаты при изменении исходных данных — достаточно нажать "Обновить все" на вкладке "Данные".

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

  • ✅ Обрабатывает миллионы строк без замедления.
  • ✅ Сохраняет историю преобразований (можно откатиться к любому шагу).
  • ✅ Поддерживает соединение с внешними источниками (SQL, CSV, веб).
⚠️ Внимание: В Excel 2010/2013 Power Query устанавливается как надстройка (Microsoft Power Query for Excel). В Excel 2016+ и Excel 365 инструмент встроен по умолчанию.

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

Если вам нужно регулярно сравнивать таблицы по одним и тем же правилам, имеет смысл написать макрос на VBA. Это сэкономит время и исключит ручные ошибки.

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

Sub FindMatches()

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

Set rng1 = Range("A2:A100") ' Первая таблица

Set rng2 = Range("C2:C100") ' Вторая таблица

For Each cell In rng1

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

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

End If

Next cell

End Sub

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

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

Модифицируйте код под свои нужды:

  • 🔹 Измените диапазоны rng1 и rng2 на свои.
  • 🔹 Добавьте дополнительные условия (например, сравнение по нескольким столбцам).
  • 🔹 Замените Interior.Color на другие действия (копирование данных, создание отчёта).
⚠️ Внимание: Перед запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов). В противном случае Excel заблокирует выполнение кода.

Сравнение методов: какой выбрать для вашей задачи

Выбор способа зависит от объёма данных, частоты использования и требуемого результата. Ниже таблица поможет определиться:

Метод Сложность Макс. объём данных Когда использовать Недостатки
ВПР/XLOOKUP до 10 000 строк Простые сравнения по одному ключу Медленный на больших данных, требует точного расположения столбцов
Условное форматирование ⭐⭐ до 50 000 строк Визуальный анализ дублей Не подходит для дальнейшей обработки результатов
Сводные таблицы ⭐⭐⭐ до 100 000 строк Анализ распределения совпадений Требует предварительной подготовки данных
Power Query ⭐⭐⭐⭐ миллионы строк Регулярная обработка больших таблиц Нужно освоить интерфейс инструмента
VBA ⭐⭐⭐⭐⭐ не ограничено Автоматизация рутинных задач Требует знаний программирования

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

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

Можно ли сравнить таблицы по нескольким столбцам одновременно?

Да. Для этого:

  • 🔹 В ВПР или XLOOKUP создайте вспомогательный столбец, объединив значения (например, =A2&B2), и ищите совпадения по нему.
  • 🔹 В Power Query при объединении запросов укажите несколько ключевых столбцов.
  • 🔹 В VBA добавьте в цикл проверку нескольких условий (If cell1.Value = cell2.Value And cell1.Offset(0,1).Value = cell2.Offset(0,1).Value Then).
Как найти совпадения, если в таблицах разный порядок столбцов?

Порядок столбцов не важен, если вы используете:

  • 🔹 ИНДЕКС + ПОИСКПОЗ (указываете нужные столбцы явно).
  • 🔹 Power Query (выбираете ключевые столбцы при объединении).
  • 🔹 VBA (в коде явно прописываете диапазоны).

Для ВПР порядок важен — искомое значение должно быть в первом столбце диапазона.

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

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

  • 🔹 Лишние пробелы — используйте =СЖПРОБЕЛЫ(A2), чтобы их убрать.
  • 🔹 Разный регистр — приведите текст к одному регистру (=ПРОПИСН(A2) или =СТРОЧН(A2)).
  • 🔹 Числа vs текст — проверьте формат ячеек (Числовой или Текстовый).
  • 🔹 Ошибки в диапазоне — убедитесь, что в формуле указан правильный интервал (например, $A$2:$B$100, а не A2:B10).
Как экспортировать результаты сравнения в отдельный файл?

Способы:

  • 🔹 Скопируйте отфильтрованные данные (например, строки с совпадениями) и вставьте в новый файл.
  • 🔹 В Power Query после объединения нажмите Главная → Закрыть и загрузить в... и выберите Новая книга.
  • 🔹 В VBA добавьте код для создания новой книги:
    Workbooks.Add
    

    ActiveSheet.Range("A1").PasteSpecial

Можно ли сравнить таблицы из разных файлов Excel?

Да, все методы поддерживают работу с внешними данными:

  • 🔹 В ВПР укажите путь к другому файлу: =ВПР(A2; [Книга2.xlsx]Лист1!$A$2:$B$100; 2; ЛОЖЬ).
  • 🔹 В Power Query импортируйте обе таблицы из разных файлов, затем объедините их.
  • 🔹 В VBA откройте второй файл в коде:
    Workbooks.Open "C:\Путь\к\файлу.xlsx"

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