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

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

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

Особое внимание уделим производительности: некоторые способы тормозят на больших массивах данных (10 000+ строк), а другие остаются быстрыми даже с миллионом записей. Также раскроем скрытую функцию Excel — "Сравнение диапазонов" через меню "Данные", о которой знают менее 15% пользователей.

1. Поиск дубликатов между двумя столбцами с помощью формулы

Самый универсальный метод — использовать формулы массива или комбинацию ВПР/ПОИСКПОЗ. Рассмотрим оба варианта на примере таблицы с данными о продажах в двух магазинах (столбцы A и B):

Способ 1. Формула с СЧЁТЕСЛИ (простой, но ограниченный)

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

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

Эта формула проверяет, встречается ли значение из ячейки A2 в столбце B. Если да — выводит "Дубликат". Минус: не показывает все совпадения (только первое) и не работает с более чем двумя столбцами.

Способ 2. Формула массива с ИНДЕКС+ПОИСКПОЗ (продвинутый)

Для точного поиска всех совпадений между столбцами A и B с выводом позиции дубликата:

=ЕСЛИОШИБКА(ИНДЕКС(B$2:B$100; ПОИСКПОЗ(A2; B$2:B$100; 0)); "")

Эта формула вернёт значение из столбца B, которое совпадает с текущей ячейкой в A. Чтобы получить номер строки, замените ИНДЕКС на ПОИСКПОЗ:

=ЕСЛИОШИБКА(ПОИСКПОЗ(A2; B$2:B$100; 0); "")
⚠️ Внимание: Формулы массива (вводимые через Ctrl+Shift+Enter в старых версиях Excel) могут значительно замедлить работу файла при обработке более 50 000 строк. В Excel 365 этот недостаток устранён благодаря динамическим массивам.
  • Плюсы: Работает во всех версиях Excel, не требует дополнительных инструментов.
  • Минусы: Сложно адаптировать для 3+ столбцов, тормозит на больших данных.
  • 🔄 Альтернатива: Используйте ФИЛЬТР в Excel 365 для динамического вывода дубликатов.
📊 Какой версии Excel вы пользуетесь?
Excel 2010-2019
Excel 365 (подписка)
Excel для Mac
Excel Online
Другой

2. Условное форматирование для визуального выделения дубликатов

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

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

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

    (замените A2 на первую ячейку выделенного диапазона).

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

Как работает формула:

Функция СЧЁТЕСЛИ подсчитывает, сколько раз значение из текущей ячейки (A2) встречается во всём диапазоне A2:B100. Если больше 1 раза — применяется форматирование.

⚠️ Внимание: Этот метод выделит все вхождения дубликата, включая первое. Если нужно выделить только повторные значения (кроме первого), используйте формулу:
=СЧЁТЕСЛИ($A$2:A2; A2)>1

(обратите внимание на относительную ссылку A2 и абсолютную $A$2).

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

3. Использование функции "Сравнение диапазонов" (скрытый инструмент Excel)

Меньше 20% пользователей знают, что в Excel есть встроенный инструмент для сравнения двух столбцов — "Сравнить и объединить книги" (Данные → Сравнить и объединить). Однако он работает только с открытыми книгами и не подходит для анализа внутри одного файла. Вместо него используем надстройку "Inquire" (доступна в Excel 2013+):

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

  1. Перейдите в Файл → Параметры → Надстройки.
  2. Внизу окна выберите Управление: Надстройки COM → Перейти.
  3. Отметьте галочкой Inquire и нажмите ОК.
  4. На вкладке Inquire выберите Сравнить файлы (для двух листов одного файла предварительно сохраните их как отдельные книги).

Ограничения метода:

  • 🔴 Работает только с целыми столбцами (нельзя сравнить части диапазонов).
  • 🔴 Не показывает, в каких именно ячейках совпадения — только общее количество.
  • 🟢 Плюс: Визуализирует различия цветом (зелёный — уникальные, красный — повторяющиеся).

Для большинства задач этот инструмент менее удобен, чем формулы или Power Query, но может пригодиться для быстрого визуального анализа небольших таблиц.

4. Power Query: профессиональный поиск дубликатов между столбцами

Power Query (доступен в Excel 2016+ и Excel 365) — самый мощный инструмент для работы с дубликатами, особенно если данных много (100 000+ строк) или они разбросаны по разным листам/файлам.

Пошаговый алгоритм:

  1. Выделите исходные данные и нажмите Данные → Из таблицы/диапазона (если данные не в таблице, Excel предложит преобразовать их).
  2. В открывшемся редакторе Power Query выделите столбцы, в которых ищете дубликаты (зажмите Ctrl для множественного выделения).
  3. Перейдите на вкладку Главная → Группировка.
  4. В настройках группировки выберите:
    • Столбец: любой из выделенных (например, Столбец1).
    • Новое имя столбца: Количество повторов.
    • Операция: Count Rows.
  • Нажмите ОК, затем Главная → Закрыть и загрузить.
  • Результат: Вы получите таблицу, где каждому уникальному значению соответствует количество его повторений во всех выбранных столбцах. Чтобы вывести только дубликаты, отфильтруйте столбец Количество повторов по значению >1.

    Пример кода M (для продвинутых пользователей):

    Если нужно автоматизировать процесс, используйте этот скрипт в Power Query:

    let
    

    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

    Группировка = Table.Group(Источник, {"Столбец1", "Столбец2"}, {{"Count", each Table.RowCount(_), Int64.Type}}),

    Фильтрация = Table.SelectRows(Группировка, each [Count] > 1)

    in

    Фильтрация

    ⚠️ Внимание: При работе с Power Query убедитесь, что исходные данные не содержат объединённых ячеек — это приведёт к ошибке загрузки. Также отключите фильтры на листе перед импортом.
    Как ускорить Power Query для больших файлов?

    1. Перед загрузкой данных в Power Query преобразуйте их в таблицу Excel (Ctrl+T).

    2. Удалите ненужные столбцы на этапе загрузки (в редакторе Power Query).

    3. Отключите автоматическое обновление (Сервис → Параметры → Загрузка → Отключить фоновое обновление).

    4. Используйте тип данных "Текст" вместо "Общий" для столбцов с дубликатами — это ускоряет сравнение.

    5. Сводные таблицы для анализа пересечений

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

    Инструкция:

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

      Имя клиентаМагазин АМагазин БВсего покупок
      Иванов П.С.314
      Петрова А.И.022
      Сидоров К.В.112

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

      • 📊 Визуализирует все пересечения, а не только факт дублирования.
      • 🔍 Позволяет анализировать данные по нескольким критериям (например, дубликаты по клиенту + товару + дате).
      • ⚡ Быстро работает даже с 100 000+ строк.

    6. VBA-макрос для автоматического поиска дубликатов

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

    Sub FindDuplicatesBetweenColumns()
    

    Dim rng1 As Range, rng2 As Range

    Dim cell1 As Range, cell2 As Range

    Dim duplicateColor As Long

    ' Задайте диапазоны для сравнения (например, A2:A100 и B2:B100)

    Set rng1 = Range("A2:A100")

    Set rng2 = Range("B2:B100")

    duplicateColor = RGB(255, 150, 150) ' Светло-красный цвет

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

    rng1.Interior.ColorIndex = xlNone

    rng2.Interior.ColorIndex = xlNone

    ' Поиск дубликатов

    For Each cell1 In rng1

    For Each cell2 In rng2

    If cell1.Value = cell2.Value And cell1.Value <> "" Then

    cell1.Interior.Color = duplicateColor

    cell2.Interior.Color = duplicateColor

    End If

    Next cell2

    Next cell1

    End Sub

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

    1. Нажмите Alt+F11, чтобы открыть редактор VBA.
    2. Вставьте код в новый модуль (Insert → Module).
    3. Измените диапазоны Range("A2:A100") и Range("B2:B100") на свои.
    4. Запустите макрос нажатием F5.
    ⚠️ Внимание: Макрос будет работать медленно, если сравниваемые диапазоны содержат более 10 000 ячеек. Для больших данных оптимизируйте код, используя Application.ScreenUpdating = False в начале процедуры.

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

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

    Метод Макс. объём данных Скорость Визуализация Дальнейший анализ Сложность
    Формулы (СЧЁТЕСЛИ, ВПР) 10 000 строк Средняя ❌ Нет ✅ Да Низкая
    Условное форматирование 50 000 строк Высокая ✅ Да ❌ Нет Низкая
    Power Query 1 000 000+ строк Очень высокая ❌ Нет ✅ Да Средняя
    Сводные таблицы 100 000 строк Высокая ✅ Да ✅ Да Низкая
    VBA-макрос 50 000 строк Низкая ✅ Да ✅ Да Высокая

    Рекомендации по выбору:

    • 🔍 Для разового поиска в небольшой таблице: СЧЁТЕСЛИ или условное форматирование.
    • 📈 Для анализа больших данных (100 000+ строк): Power Query.
    • 🎨 Для визуального выделения дубликатов: условное форматирование или VBA.
    • 📊 Для многомерного анализа (например, дубликаты по нескольким критериям): сводные таблицы.

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

    Можно ли найти дубликаты между столбцами на разных листах?

    Да, для этого используйте формулы с указанием листа, например:

    =СЧЁТЕСЛИ(Лист2!A:A; Лист1!A2)>0

    Или импортируйте данные с обоих листов в Power Query и сравните их там.

    Почему условное форматирование не находит все дубликаты?

    Проверьте:

    • Диапазон в формуле условного форматирования (должен включать все сравниваемые ячейки).
    • Типы данных (текст vs числа): Excel может не распознавать "1" и 1 как одинаковые значения.
    • Регистр: функция СЧЁТЕСЛИ чувствительна к регистру ("Иван" ≠ "иван"). Используйте СЧЁТЕСЛИМН с дополнительным условием или НАЙТИ для регистронезависимого поиска.
    Как найти дубликаты между тремя и более столбцами?

    Для 3+ столбцов модифицируйте формулу:

    =ЕСЛИ(ИЛИ(СЧЁТЕСЛИ($B:$B; A2)>0; СЧЁТЕСЛИ($C:$C; A2)>0); "Дубликат"; "")

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

    1. Загрузите данные в Power Query.
    2. Выделите все столбцы для сравнения.
    3. Используйте Table.Group с операцией Count Rows.
    Можно ли автоматически удалить дубликаты между столбцами?

    Да, но не стандартным инструментом Удалить дубликаты (он работает только внутри одного диапазона). Альтернативы:

    • Скопируйте данные из обоих столбцов в один, затем примените Данные → Удалить дубликаты.
    • Используйте Power Query:
      1. Объедините столбцы (Добавить столбец → Настраиваемый столбец).
      2. Удалите дубликаты (Главная → Удалить строки → Удалить дубликаты).

    ⚠️ Важно: Перед удалением создайте резервную копию данных!

    Почему Power Query не находит дубликаты, которые видны вручную?

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

    • В данных есть скрытые символы (пробелы, переносы строк). Используйте ТРИМ или ПЕЧСИМВ для очистки.
    • Разные типы данных (например, текст "123" и число 123). Преобразуйте столбцы к одному типу в Power Query.
    • Включена чувствительность к регистру. В настройках группировки отметьте опцию Игнорировать регистр.