Как сравнить два столбца в Excel на совпадения: 7 проверенных методов

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

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

Для удобства мы структурировали материал по уровню сложности: первые три метода подойдут даже тем, кто только начал осваивать Excel, а последние четыре потребуют базовых знаний формул или готовности изучить новые инструменты. Все примеры приведены для Excel 2019–2023 и Microsoft 365, но большинство способов работают и в более ранних версиях (начиная с 2010 года). Если вы используете Google Таблицы, 80% методов также применимы с минимальными правками.

Прежде чем перейти к инструкциям, ответьте на один вопрос — это поможет нам точнее адаптировать рекомендации под ваши задачи:

📊 Для чего вам нужно сравнить столбцы в Excel?
Поиск дубликатов в списке
Сверка данных из разных источников
Контроль изменений в отчётах
Анализ продаж/клиентской базы
Другое

1. Простейший способ: функция ВПР (VLOOKUP) для поиска совпадений

Функция ВПР (или VLOOKUP в английской версии) — это "швейцарский нож" Excel для поиска данных в таблицах. Она идеально подходит, если вам нужно проверить, есть ли значения из одного столбца в другом, и вывести результат в виде ИСТИНА/ЛОЖЬ или конкретных данных.

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

=ЕСЛИ(ЕЧИСЛО(ВПР(A2;B:B;1;ЛОЖЬ));"Есть в списке";"Нет в списке")

Как это работает:

  1. ВПР(A2;B:B;1;ЛОЖЬ) ищет значение из ячейки A2 в столбце B. Если находит — возвращает это значение, если нет — ошибку #Н/Д.
  2. ЕЧИСЛО проверяет, является ли результат числом (в данном случае — не ошибкой).
  3. ЕСЛИ выводит "Есть в списке" или "Нет в списке" в зависимости от результата.

⚠️ Внимание: ВПР чувствительна к регистру только в Excel 365 с функцией XLOOKUP. В стандартной ВПР регистр игнорируется — "Иванов" и "иванов" будут считаться совпадением. Если это критично, используйте метод с ПОИСКПОЗ (раздел 3).

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

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

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

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

    (где A2 — первая ячейка выделенного диапазона, B:B — столбец для сравнения).

  5. Нажмите Формат, выберите цвет заливки (например, зелёный) и сохраните правило.

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

=ЕОШ(ПОИСКПОЗ(A2;B:B;0))

🔹 Плюсы метода:

  • 👁️ Наглядность — совпадения видны сразу, без дополнительных столбцов.
  • 🔄 Динамичность — форматирование обновляется автоматически при изменении данных.
  • 🎨 Гибкость — можно настроить любые цвета, шрифты или границы.

⚠️ Внимание: Условное форматирование может замедлять работу Excel, если применяется к большим диапазонам (более 10 000 строк). В таких случаях лучше использовать Power Query (раздел 6).

3. Продвинутый поиск: ПОИСКПОЗ (MATCH) + ИНДЕКС (INDEX) для точного сопоставления

Комбинация функций ПОИСКПОЗ и ИНДЕКС позволяет не только найти совпадения, но и извлечь связанные данные из другого столбца. Этот метод незаменим, если вам нужно, например, сопоставить цены из одного прайс-листа с другим или найти email клиента по его ID.

Пример: У вас есть два списка с названиями товаров (A2:A10 и C2:C10) и соответствующие цены (B2:B10 и D2:D10). Вам нужно проверить, какие товары есть в обоих списках, и вывести их цены рядом.

Формула для ячейки E2 (проверка наличия товара из A2 в столбце C):

=ЕСЛИ(ЕЧИСЛО(ПОИСКПОЗ(A2;C:C;0));ИНДЕКС(D:D;ПОИСКПОЗ(A2;C:C;0));"Нет в списке")

Расшифровка:

  • ПОИСКПОЗ(A2;C:C;0) ищет позицию значения из A2 в столбце C.
  • ИНДЕКС(D:D;...) возвращает значение из столбца D (цены) на найденной позиции.
  • ЕСЛИ выводит цену или "Нет в списке", если товар не найден.

🔹 Когда использовать этот метод:

  • 📊 Для сопоставления данных из разных таблиц (например, прайс-листов поставщиков).
  • 🔍 Когда нужно не только найти совпадение, но и извлечь связанную информацию.
  • 📌 Если важно учитывать регистр (в Excel 365 используйте XMATCH с параметром -2 для точного сопоставления).
Почему ПОИСКПОЗ быстрее ВПР?

Функция ПОИСКПОЗ работает быстрее ВПР, потому что она возвращает только позицию значения, а не само значение. Это снижает нагрузку на вычисления, особенно в больших таблицах.

4. Сравнение с помощью формул массива (для опытных пользователей)

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

Пример 1: Поиск точных совпадений (с учётом регистра) в Excel 365:

=ПОИСКПОЗ(ИСТИНА;ТОЧНОЕСОВПАД(A2;B:B);0)
Функция ТОЧНОЕСОВПАД сравнивает значения с учётом регистра.

Пример 2: Поиск совпадений с игнорированием пробелов (для всех версий Excel):

=ЕСЛИ(СУММПРОИЗВ(--(СЖП(A2)=СЖП(B:B)));"Есть совпадение";"Нет")
Функция СЖП удаляет пробелы, а СУММПРОИЗВ проверяет совпадения.

⚠️ Внимание: Формулы массива в старых версиях Excel (до 2019) требуют подтверждения клавишами Ctrl+Shift+Enter. В Excel 365 они работают как обычные формулы.

🔹 Преимущества формул массива:

  • 🧩 Обработка сложных условий (например, поиск по нескольким критериям одновременно).
  • 🔄 Динамическое обновление при изменении данных.
  • 📈 Возможность работы с неструктурированными данными (например, когда пробелы или регистр не важны).

☑️ Подготовка данных перед сравнением

Выполнено: 0 / 4

5. Сравнение столбцов с помощью сводных таблиц

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

Как сравнить два списка:

  1. Добавьте к исходным данным столбец с категорией (например, "Список 1" для данных из A и "Список 2" для данных из B).
  2. Выделите все данные (включая заголовки) и создайте сводную таблицу: Вставка → Сводная таблица.
  3. В область Строки перетащите столбец с уникальными значениями (те, что нужно сравнить).
  4. В область Значения перетащите столбец с категориями ("Список 1"/"Список 2") и настройте отображение как Количество.

В результате вы получите таблицу, где будет видно:

  • Какие значения есть в обоих списках (количество = 2).
  • Какие значения уникальны для каждого списка (количество = 1).

🔹 Плюсы метода:

  • 📊 Визуализация результатов в виде таблицы или графика.
  • 🔢 Автоматический подсчёт совпадений и уникальных значений.
  • 🔄 Легкое обновление при изменении исходных данных.

⚠️ Внимание: Сводные таблицы не учитывают регистр и пробелы при группировке. Перед созданием сводной приведите данные к единому формату (см. чек-лист в предыдущем разделе).

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

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

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

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

Результат будет загружен на новый лист Excel, где вы увидите только совпадающие (или уникальные) значения.

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

  • ⚡ Быстрая обработка больших объёмов данных (миллионы строк).
  • 🔄 Автоматическое обновление при изменении исходных данных.
  • 🛠️ Возможность дополнительной обработки (очистка, фильтрация, сортировка).

⚠️ Внимание: В Excel 2013 Power Query доступен как надстройка Power BI. Для его установки перейдите в Файл → Параметры → Надстройки → Управление надстройками COM → Перейти и поставьте галочку напротив Microsoft Power Query for Excel.

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

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

Пример макроса для поиска совпадений:

Sub FindMatches()

Dim ws As Worksheet

Dim rng1 As Range, rng2 As Range

Dim cell As Range

Dim lastRow1 As Long, lastRow2 As Long

Dim matchFound As Boolean

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

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

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

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

Set rng1 = ws.Range("A2:A" & lastRow1)

Set rng2 = ws.Range("B2:B" & lastRow2)

' Очищаем предыдущие результаты

ws.Range("C:C").ClearContents

' Сравниваем каждый элемент из первого столбца со вторым

For Each cell In rng1

matchFound = False

For Each cell2 In rng2

If LCase(Trim(cell.Value)) = LCase(Trim(cell2.Value)) Then

matchFound = True

Exit For

End If

Next cell2

cell.Offset(0, 2).Value = IIf(matchFound, "Есть в списке", "Нет в списке")

Next cell

End Sub

Что делает этот макрос:

  • Сравнивает значения из столбца A со столбцом B, игнорируя регистр и пробелы.
  • Выводит результат ("Есть в списке"/"Нет в списке") в столбец C.
  • Автоматически определяет последнюю заполненную строку в каждом столбце.

🔹 Как запустить макрос:

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

⚠️ Внимание: Перед первым запуском макроса сохраните файл в формате .xlsm (с поддержкой макросов), иначе Excel заблокирует выполнение кода.

Сравнение методов: какой выбрать?

Чтобы помочь вам определиться с оптимальным способом, мы составили сравнительную таблицу:

Метод Сложность Макс. объём данных Учитывает регистр Доп. возможности Когда использовать
ВПР/ЕСЛИ ~10 000 строк ❌ (кроме Excel 365) Простота, не требует навыков Быстрая проверка небольших списков
Условное форматирование ⭐⭐ ~50 000 строк Визуальное выделение Наглядный анализ без формул
ПОИСКПОЗ+ИНДЕКС ⭐⭐ ~100 000 строк ❌ (кроме Excel 365) Извлечение связанных данных Сопоставление таблиц с выводом данных
Формулы массива ⭐⭐⭐ ~50 000 строк ✅ (с ТОЧНОЕСОВПАД) Сложные условия, игнор пробелов Точное сопоставление с учётом нюансов
Сводные таблицы ⭐⭐ ~100 000 строк Группировка, подсчёт Анализ совпадений с визуализацией
Power Query ⭐⭐⭐ Миллионы строк Очистка данных, объединение таблиц Обработка больших массивов
VBA ⭐⭐⭐⭐ Ограничено памятью Автоматизация, сложная логика Регулярные задачи с уникальными условиями

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

FAQ: Частые вопросы о сравнении столбцов в Excel

Как сравнить два столбца и выделить только уникальные значения?

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

=СЧЁТЕСЛИ(B:B;A1)=0

Эта формула проверит, сколько раз значение из A1 встречается в столбце B. Если ноль — значение уникально.

Можно ли сравнить столбцы в Google Таблицах?

Да, все методы кроме Power Query и VBA работают в Google Таблицах. Например, для поиска совпадений используйте:

=ARRAYFORMULA(IF(ISNA(MATCH(A2:A; B2:B; 0)); "Нет"; "Есть"))

Обратите внимание, что в Google Таблицах формулы массива требуют подтверждения только в ручном режиме (без Ctrl+Shift+Enter).

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

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

  • 🔤 Лишние пробелы — используйте СЖП для очистки данных.
  • 🔤 Разный регистр — приведите текст к одному регистру с помощью СТРОЧН или ПРОПИСН.
  • 🔢 Числа vs текст — проверьте формат ячеек (например, число "1" и текст "1" не совпадут).
  • 📌 Ошибки в диапазоне — убедитесь, что в формуле указан весь столбец для поиска (например, B:B, а не B2:B10, если данных больше).
Как сравнить два столбца и перенести совпадения на другой лист?

Используйте Power Query:

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

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

=ЕСЛИ(СЧЁТЕСЛИ(B:B;A1)>0;A1;"")

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

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

Да, для этого подойдёт комбинация И + ПОИСКПОЗ или формула массива. Например, чтобы найти строки, где совпадают и A, и B:

=И(НЕ(ЕОШ(ПОИСКПОЗ(A2;D:D;0))); НЕ(ЕОШ(ПОИСКПОЗ(B2;E:E;0))))

Для Excel 365 удобнее использовать ФИЛЬТР:

=ФИЛЬТР(A2:B100;(СЧЁТЕСЛИ(D:D;A2:A100))*(СЧЁТЕСЛИ(E:E;B2:B100)))