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

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

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

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

1. Подготовка данных: почему сравнение может не работать

Прежде чем искать совпадения, убедитесь, что ваши таблицы готовы к анализу. Ошибки на этом этапе приведут к ложным результатам или сбоям в формулах. Вот что нужно проверить:

  • 📌 Формат данных: числа хранятся как числа (не как текст!), даты — в едином формате. Например, 01.12.2023 и 1 декабря 2023 для Excel — разные значения.
  • 📌 Лишние символы: пробелы в начале/конце ячеек, невидимые символы (например, после импорта из PDF). Используйте СЖПРОБЕЛЫ или TRIM для очистки.
  • 📌 Регистр букв: "Иванов" и "иванов" — разные строки. При необходимости приведите текст к одному регистру функцией ПРОПИСН или СТРОЧН.
  • 📌 Уникальные идентификаторы: если сравниваете таблицы с одинаковой структурой, убедитесь, что ключевые столбцы (например, ID клиента) действительно уникальны.

Особое внимание уделите связанным книгам. Если вы открываете два файла Excel одновременно, а один из них содержит внешние ссылки, программа может тормозить или выдавать ошибку #ССЫЛКА!. Решение: либо сохраните оба файла в одной папке, либо используйте Закрыть и загрузить в Power Query для разрыва связей.

⚠️ Внимание: Если в одной из книг включён Режим совместимости (файл сохранён в формате .xls, а не .xlsx), некоторые функции (например, XLOOKUP) могут не работать. Преобразуйте файл в современный формат через Файл → Сохранить как → Книга Excel (*.xlsx).

2. Способ 1: Функция ВПР (VLOOKUP) для поиска совпадений

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

Допустим, у вас есть две книги:

  • Книга1.xlsx — список клиентов с колонками A (ID) и B (Имя).
  • Книга2.xlsx — транзакции с колонками A (ID клиента) и B (Сумма).

Чтобы найти в Книге1 клиентов, которые совершили покупки (есть в Книге2), введите в Книге1 в столбце C формулу:

=ЕСЛИНАОШИБКА(ВПР(A2;[Книга2.xlsx]Лист1!$A:$B;1;ЛОЖЬ);"Нет совпадений";"Есть в Книге2")

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

  • A2 — искомое значение (ID клиента из Книги1).
  • [Книга2.xlsx]Лист1!$A:$B — диапазон поиска в другой книге.
  • 1 — номер столбца, откуда возвращать значение (в нашем случае это столбец A с ID).
  • ЛОЖЬ — точный поиск (без приближений).
⚠️ Внимание: Если путь к Книге2.xlsx содержит кириллические символы или пробелы, Excel может не распознать ссылку. Переименуйте файл на латиницу (например, Book2.xlsx) или используйте Power Query.

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

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

Минусы:

  • ❌ Медленно обрабатывает большие таблицы (от 50 000 строк).
  • ❌ Не ищет совпадения по нескольким столбцам одновременно.
📊 Какой версией Excel вы пользуетесь?
Excel 2010 или старше
Excel 2013-2016
Excel 2019
Excel 365 (подписка)
Не знаю

3. Способ 2: Условное форматирование для визуального сравнения

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

Шаг 1. Откройте обе книги. В Книге1 выделите диапазон для проверки (например, столбец A2:A100 с ID клиентов).

Шаг 2. Перейдите в Главная → Условное форматирование → Создать правило → Использовать формулу....

Шаг 3. Введите формулу:

=СЧЁТЕСЛИ([Книга2.xlsx]Лист1!$A:$A;A2)>0

Шаг 4. Задайте формат для совпадающих ячеек (например, зелёный фон) и нажмите ОК.

Теперь все ячейки в Книге1, которые есть в Книге2, будут подсвечены. Этот способ нагляден, но имеет ограничения:

  • 🔹 Работает только при открытых обеих книгах.
  • 🔹 Не показывает, какие именно данные совпали (только факт совпадения).
  • 🔹 Может тормозить при большом количестве правил (более 10 000 строк).

4. Способ 3: Формулы массива для сложных сравнений

Когда нужно найти совпадения по нескольким критериям (например, совпадают и ID клиента, и Дата заказа), на помощь приходят формулы массива. Они обрабатывают данные группировками, а не построчно.

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

Книга1.xlsx (Заказы 2023)Книга2.xlsx (Заказы 2026)
ID клиентаID клиента
ДатаДата
1001
01.05.2023
1001
01.05.2026
1002
15.06.2023
1002
15.06.2023
1003
20.07.2023
1005
10.08.2026

Чтобы найти клиентов, которые сделали заказы в один и тот же день в обоих годах, используйте формулу массива:

=ЕСЛИ(СУММПРОИЗВ(--(A2=[Книга2.xlsx]Лист1!$A$2:$A$100);--(B2=[Книга2.xlsx]Лист1!$B$2:$B$100))>0;"Совпадает";"")

Введите её в ячейку C2, затем нажмите Ctrl+Shift+Enter (в старых версиях Excel) или просто EnterExcel 365).

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

  1. A2=[Книга2.xlsx]Лист1!$A$2:$A$100 — сравнивает ID клиента из текущей строки со всеми ID из второй книги.
  2. -- преобразует результаты сравнения (ИСТИНА/ЛОЖЬ) в 1/0.
  3. СУММПРОИЗВ перемножает массивы и суммирует результаты. Если сумма > 0, значит, есть совпадение.
⚠️ Внимание: Формулы массива сильно нагружают процессор. Если у вас более 50 000 строк, разбивайте данные на части или используйте Power Query.
Почему формула возвращает #ЗНАЧ!?

Ошибка #ЗНАЧ! появляется, если диапазоны в формуле массива имеют разный размер. Например, в [Книга2.xlsx]Лист1!$A$2:$A$100 — 99 строк, а в $B$2:$B$99 — 98 строк. Проверьте границы диапазонов.

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

Power Query (или Get & Transform в Excel 2016+) — это единственный надёжный способ сравнить книги объёмом более 100 000 строк без зависаний. Он не только находит совпадения, но и позволяет объединять, трансформировать и очищать данные.

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

  1. Откройте Книгу1.xlsx, перейдите в Данные → Получить данные → Из файла → Из книги Excel.
  2. Выберите Книгу2.xlsx и импортируйте нужный лист.
  3. В редакторе Power Query нажмите Главная → Объединить запросы → Объединить.
  4. Выберите таблицы и столбцы для сравнения (например, ID клиента), тип объединения — Внутреннее (только совпадения).
  5. Нажмите ОК, затем Закрыть и загрузить.

Результат — новая таблица с совпадающими записями. Преимущества Power Query:

  • 🚀 Обрабатывает миллионы строк без тормозов.
  • 🔄 Позволяет обновлять данные одним кликом (Данные → Обновить все).
  • 🛠️ Автоматически исправляет форматы (даты, числа, текст).

Типичные ошибки:

  • ❌ Забыли Закрыть и загрузить — изменения не сохранятся.
  • ❌ Объединяете столбцы с разными типами данных (например, текст и числа).
  • ❌ Не обновляете запрос после изменений в исходных файлах.

☑️ Подготовка к объединению в Power Query

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

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

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

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

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

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

Пример:

ID клиентаКоличество заказов (2023)Количество заказов (2026)Итого
1001325
1002112
1005044

Из таблицы видно, что клиент 1001 совершал покупки в обоих годах — это и есть совпадение.

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

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

Sub FindMatches()

Dim ws1 As Worksheet, ws2 As Worksheet

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

Dim lastRow1 As Long, lastRow2 As Long

Dim matchColor As Long: matchColor = RGB(200, 230, 200) ' Светло-зелёный

' Настройте имена листов

Set ws1 = Workbooks("Книга1.xlsx").Sheets("Лист1")

Set ws2 = Workbooks("Книга2.xlsx").Sheets("Лист1")

' Определяем последние строки

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

lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row

' Диапазоны для сравнения

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

Set rng2 = ws2.Range("A2:A" & lastRow2)

' Поиск совпадений в Книге1

For Each cell In rng1

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

cell.Interior.Color = matchColor

End If

Next cell

MsgBox "Совпадения найдены и выделены!", vbInformation

End Sub

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

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

Предупреждения:

  • ⚠️ Макрос работает только с открытыми книгами.
  • ⚠️ Если в ячейках ошибки (#Н/Д), скрипт завершится аварийно. Добавьте обработку ошибок с On Error Resume Next.

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

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

  • 🔴 Ошибка #ССЫЛКА! — возникает, если путь к файлу изменён или книга закрыта. Решение: используйте абсолютные пути или Power Query.
  • 🔴 Ложные совпадения — когда "100" (текст) и 100 (число) считаются одинаковыми. Решение: приведите данные к одному формату с ЗНАЧЕН или ТЕКСТ.
  • 🔴 Медленная работа — формулы массива тормозят на больших данных. Решение: замените их на Power Query или разбивайте данные на части.
  • 🔴 Потеря связей — при перемещении файлов внешние ссылки обрываются. Решение: сохраняйте книги в одной папке или используйте ИНДЕКС-ПОИСКПОЗ вместо ВПР.

Если вы работаете с конфиденциальными данными, помните:

  • 🔐 Power Query кэширует данные в файле — удаляйте лишние запросы через Данные → Запросы и соединения.
  • 🔐 При использовании VBA не сохраняйте макросы в файлах с расширением .xlsx (они не поддерживают код). Используйте .xlsm.

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

Можно ли сравнить книги Excel без открытия второй книги?

Да, но с ограничениями. Вы можете использовать Power Query для импорта данных из закрытой книги, если путь к файлу не изменился. Альтернатива — сохранить данные второй книги в формате .csv и подключиться к ним как к внешнему источнику.

Однако формулы вроде ВПР или СЧЁТЕСЛИ требуют, чтобы обе книги были открыты.

Как сравнить книги, если они имеют разную структуру (столбцы в разном порядке)?

В этом случае Power Query — лучший выбор. При объединении запросов вы можете вручную сопоставить столбцы, даже если они называются по-разному. Например, столбец Client_ID в одной книге и Код клиента в другой.

Если используете формулы, добавьте вспомогательный столбец с уникальным ключом (например, конкатенацией нескольких полей): =A2&B2&C2.

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

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

  1. Разные форматы данных (текст vs число). Проверьте с помощью ТИП или ЕТЕКСТ.
  2. Лишние пробелы или непечатаемые символы. Примените СЖПРОБЕЛЫ и ПЕЧСИМВ.
  3. Чувствительность к регистру. Используйте НАЙТИ или ПОИСК для проверки.
  4. Ошибка в ссылке на книгу. Убедитесь, что имя файла и путь указаны верно (без кириллицы).
Как сравнить книги в Excel Online?

В веб-версии Excel доступны не все функции. Вы можете:

  • Использовать ВПР или СЧЁТЕСЛИ, если книги открыты в одном браузере.
  • Скопировать данные из второй книги в первую и применить условное форматирование.
  • Экспортировать данные в .csv и загрузить их в Power BI (бесплатная альтернатива Power Query).

Ограничение: в Excel Online нет Power Query и VBA.

Можно ли сравнить книги Excel на Mac?

Да, все описанные методы работают и на Excel для Mac, за исключением:

  • Некоторые сочетания клавиш отличаются (например, для формул массива используйте Command + Shift + Enter вместо Ctrl+Shift+Enter).
  • Power Query доступен только в Excel 2016 и новее (в меню Данные → Получить данные).
  • Макросы VBA могут требовать дополнительных разрешений в настройках безопасности.