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

Если вам нужно сравнить две таблицы Access и найти совпадающие данные, возможны два варианта действий.

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

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

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

В этой статье

Сравнение двух таблиц с помощью объединений

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

Допустим, вы работаете в университете и хотите узнать, как недавние изменения в учебном плане по математике повлияли на оценки учащихся. В частности, вас интересуют оценки тех студентов, у которых профилирующим предметом является математика. У вас уже есть таблица, содержащая данные о профилирующих предметах, и таблица, содержащая данные о студентах, которые их изучают. Данные об оценках хранятся в таблице "Учащиеся", а данные о профилирующих предметах - в таблице "Специализации". Чтобы увидеть, как после недавних изменений в учебном плане изменились оценки у тех, кто специализируется на математике, вам нужно просмотреть записи из таблицы "Учащиеся", соответствующие записям в таблице "Специализации".

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

В данном примере вы создаете запрос, который определяет, как недавние изменения в учебном плане по математике повлияли на оценки студентов с соответствующим профилирующим предметом. Используйте две приведенные ниже таблицы: "Специализации" и "Учащиеся". Добавьте их в базу данных.

Access предоставляет несколько способов добавления этих таблиц образец базы данных. Можно ввести данные вручную, скопируйте каждую таблицу в электронную таблицу программы (например, Microsoft Office Excel 2007) и затем импортируйте листы в Access или можно вставлять данные в текстовом редакторе, например Блокнот и затем импортировать данные из результирующего текстовые файлы.

В пошаговых инструкциях этого раздела объясняется, как вводить данные вручную на пустой лист, а также как копировать примеры таблиц в Excel и затем импортировать их в Access.

Специализации

Код учащегося

Специализация

Учащиеся

Код учащегося

Семестр

Учебный план

Номер предмета

Оценка

Если вы собираетесь вводить пример данных в электронной таблице, можете .

Ввод примеров данных вручную

Если вас не интересует создание листа на основе примера данных, пропустите следующий раздел ("Создание листов с примерами данных").

Создание листов с примерами данных

Создание таблиц базы данных на основе листов


Сравнение образцов таблиц и поиск соответствующих записей с использованием объединений

Теперь все готово для сравнения таблиц "Учащиеся" и "Специализации". Так как связи между двумя таблицами не определены, вам необходимо создать объединения соответствующих полей в запросе. Таблицы содержат по несколько полей, и вам потребуется создать объединение для каждой пары общих полей: "Код учащегося", "Год", а также "Учебный план" (в таблице "Учащиеся") и "Специализация" (в таблице "Специализации"). В данном случае нас интересует только математика, поэтому можно ограничить результаты запроса с помощью условия поля.

    На вкладке Создание нажмите кнопку Конструктор запросов .

    В диалоговом окне Добавление таблицы дважды щелкните таблицу, которая содержит нужные записи (Учащиеся ), а затем дважды щелкните таблицу, с которой ее сравниваете (Специализации ).

    Закройте диалоговое окно Добавление таблицы .

    Перетащите поле Код учащегося из таблицы Учащиеся в поле Код учащегося таблицы Специализации . В бланке запроса между двумя таблицами появится линия, которая показывает, что создано объединение. Дважды щелкните линию, чтобы открыть диалоговое окно Параметры объединения .

    Обратите внимание на три варианта в диалоговом окне Параметры объединения . По умолчанию выбран вариант 1. В некоторых случаях требуется добавить в параметры объединения дополнительные строки из одной таблицы. Так как вам нужно найти только совпадающие данные, оставьте для объединения значение 1. Закройте диалоговое окно Параметры объединения , нажав кнопку Отмена .

    Вам нужно создать еще два объединения. Для этого перетащите поле Год из таблицы Учащиеся в поле Год таблицы Специализации , а затем - поле Учебный план из таблицы Учащиеся в поле Специализация таблицы Специализации .

    В таблице Учащиеся дважды щелкните звездочку (* ), чтобы добавить все поля таблицы в бланк запроса.

    Примечание: Учащиеся.* .

    В таблице Специализации дважды щелкните поле Специализация , чтобы добавить его в бланк.

    Показать столбца Специализация .

    В строке Условие отбора столбца Специализация введите МАТЕМ .

    На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить .

Сравнение двух таблиц с использованием поля в качестве условия

Иногда необходимо сравнить таблицы на основе полей с совпадающими значениями, но разными типами данных. Например, поле в одной таблице может иметь числовой тип данных, а сравнить его нужно с полем из другой таблицы, которое имеет текстовый тип данных. Поля, содержащие аналогичные данные разного типа, могут появиться при сохранении чисел в качестве текста (например, при импорте данных из другой программы). Так как создать объединения полей с данными разного типа невозможно, вам потребуется использовать другой способ. Для сравнения двух полей с данными разного типа можно использовать одно поле в качестве условия для другого.

Допустим, вы работаете в университете и хотите узнать, как недавние изменения в учебном плане по математике повлияли на оценки учащихся. В частности, вас интересуют оценки тех студентов, у которых профилирующим предметом является математика. У вас уже есть таблицы "Специализации" и "Учащиеся". Данные об оценках хранятся в таблице "Учащиеся", а данные о профилирующих предметах - в таблице "Специализации". Чтобы увидеть, как изменились оценки у тех, кто специализируется на математике, вам нужно просмотреть записи из таблицы "Учащиеся", соответствующие записям в таблице "Специализации". Однако у одного из полей, которые вы хотите использовать для сравнения таблиц, тип данных не такой, как у поля, с которым оно сопоставляется.

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

Чтобы проиллюстрировать этот способ, мы используем , но в поле "Код учащегося" таблицы "Специализации" изменим числовой тип данных на текстовый. Так как нельзя создать объединение двух полей с разными типами данных, нам придется сравнить два поля "Код учащегося", используя одно поле в качестве условия для другого.

Изменение типа данных в поле "Код учащегося" таблицы "Специализации"

    Откройте базу данных, в которой вы сохранили примеры таблиц.

    В области навигации щелкните таблицу "Специализации" правой кнопкой мыши и выберите пункт Конструктор .

    Таблица "Специализации" откроется в режиме конструктора.

    В столбце Тип данных измените для поля Код учащегося тип данных Число на Текст .

    Закройте таблицу "Специализации". Нажмите кнопку Да , когда вам будет предложено сохранить изменения.

Сравнение примеров таблиц и поиск соответствующих записей с использованием условия поля

Ниже показано, как сравнить два поля "Код учащегося", используя поле из таблицы "Учащиеся" в качестве условия для поля из таблицы "Специализации". С помощью ключевого слова Like вы можете сравнить два поля, даже если они содержат данные разного типа.

    На вкладке Создать в группе Другое нажмите кнопку Конструктор запросов .

    В диалоговом окне Добавление таблицы дважды щелкните таблицу Учащиеся , а затем таблицу Специализации .

    Закройте диалоговое окно Добавление таблицы .

    Перетащите поле Год из таблицы Учащиеся в поле Год таблицы Специализации , а затем - поле Учебный план из таблицы Учащиеся в поле Специализация таблицы Специализации . Эти поля содержат данные одного типа, поэтому для их сравнения можно использовать объединения. Для сравнения полей с данными одного типа рекомендуется использовать объединения.

    Дважды щелкните звездочку (* ) в таблице Учащиеся , чтобы добавить все поля таблицы в бланк запроса.

    Примечание: При использовании звездочки для добавления всех полей в бланке отображается только один столбец. Имя этого столбца включает имя таблицы, за которым следуют точка (.) и звездочка (*). В этом примере столбец получает имя Учащиеся.* .

    В таблице Специализации дважды щелкните поле Код учащегося , чтобы добавить его в бланк.

    В бланке запроса снимите флажок в строке Показать столбца Код учащегося . В строке Условие отбора столбца Код учащегося введите Like [Учащиеся].[Код учащегося] .

    В таблице Специализации дважды щелкните поле Специализация , чтобы добавить его в бланк.

    В бланке запроса снимите флажок в строке Показать столбца Специализация . В строке Условие отбора введите МАТЕМ .

    На вкладке Конструктор в группе Результаты нажмите кнопку Выполнить .

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

Чтение этой статьи займёт у Вас около 10 минут. В следующие 5 минут Вы сможете легко сравнить два столбца в Excel и узнать о наличии в них дубликатов, удалить их или выделить цветом. Итак, время пошло!

Excel – это очень мощное и действительно крутое приложение для создания и обработки больших массивов данных. Если у Вас есть несколько рабочих книг с данными (или только одна огромная таблица), то, вероятно, Вы захотите сравнить 2 столбца, найти повторяющиеся значения, а затем совершить с ними какие-либо действия, например, удалить, выделить цветом или очистить содержимое. Столбцы могут находиться в одной таблице, быть смежными или не смежными, могут быть расположены на 2-х разных листах или даже в разных книгах.

Представьте, что у нас есть 2 столбца с именами людей – 5 имён в столбце A и 3 имени в столбце B . Необходимо сравнить имена в этих двух столбцах и найти повторяющиеся. Как Вы понимаете, это вымышленные данные, взятые исключительно для примера. В реальных таблицах мы имеем дело с тысячами, а то и с десятками тысяч записей.

Вариант А: оба столбца находятся на одном листе. Например, столбец A и столбец B .

Вариант В: Столбцы расположены на разных листах. Например, столбец A на листе Sheet2 и столбец A на листе Sheet3 .

В Excel 2013, 2010 и 2007 есть встроенный инструмент Remove Duplicate (Удалить дубликаты), но он бессилен в такой ситуации, поскольку не может сравнивать данные в 2 столбцах. Более того, он может только удалить дубликаты. Других вариантов, таких как выделение или изменение цвета, не предусмотрено. И точка!

Сравниваем 2 столбца в Excel и находим повторяющиеся записи при помощи формул

Вариант А: оба столбца находятся на одном листе


Подсказка: В больших таблицах скопировать формулу получится быстрее, если использовать комбинации клавиш. Выделите ячейку C1 и нажмите Ctrl+C (чтобы скопировать формулу в буфер обмена), затем нажмите Ctrl+Shift+End (чтобы выделить все не пустые ячейки в столбе С) и, наконец, нажмите Ctrl+V (чтобы вставить формулу во все выделенные ячейки).


Вариант В: два столбца находятся на разных листах (в разных книгах)

Обработка найденных дубликатов

Отлично, мы нашли записи в первом столбце, которые также присутствуют во втором столбце. Теперь нам нужно что-то с ними делать. Просматривать все повторяющиеся записи в таблице вручную довольно неэффективно и занимает слишком много времени. Существуют пути получше.

Показать только повторяющиеся строки в столбце А

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

Кликните правой кнопкой мыши и в контекстном меню выберите Insert (Вставить):

Дайте названия столбцам, например, “Name ” и “Duplicate? ” Затем откройте вкладку Data (Данные) и нажмите Filter (Фильтр):

После этого нажмите меленькую серую стрелку рядом с “Duplicate? “, чтобы раскрыть меню фильтра; снимите галочки со всех элементов этого списка, кроме Duplicate , и нажмите ОК .

Вот и всё, теперь Вы видите только те элементы столбца А , которые дублируются в столбце В . В нашей учебной таблице таких ячеек всего две, но, как Вы понимаете, на практике их встретится намного больше.

Чтобы снова отобразить все строки столбца А , кликните символ фильтра в столбце В , который теперь выглядит как воронка с маленькой стрелочкой и выберите Select all (Выделить все). Либо Вы можете сделать то же самое через Ленту, нажав Data (Данные) > Select & Filter (Сортировка и фильтр) > Clear (Очистить), как показано на снимке экрана ниже:

Изменение цвета или выделение найденных дубликатов

Если пометки “Duplicate ” не достаточно для Ваших целей, и Вы хотите отметить повторяющиеся ячейки другим цветом шрифта, заливки или каким-либо другим способом…

В этом случае отфильтруйте дубликаты, как показано выше, выделите все отфильтрованные ячейки и нажмите Ctrl+1 , чтобы открыть диалоговое окно Format Cells (Формат ячеек). В качестве примера, давайте изменим цвет заливки ячеек в строках с дубликатами на ярко-жёлтый. Конечно, Вы можете изменить цвет заливки при помощи инструмента Fill (Цвет заливки) на вкладке Home (Главная), но преимущество диалогового окна Format Cells (Формат ячеек) в том, что можно настроить одновременно все параметры форматирования.

Теперь Вы точно не пропустите ни одной ячейки с дубликатами:

Удаление повторяющихся значений из первого столбца

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

Если 2 столбца, которые Вы сравниваете, находятся на разных листах , то есть в разных таблицах, кликните правой кнопкой мыши выделенный диапазон и в контекстном меню выберите Delete Row (Удалить строку):

Нажмите ОК , когда Excel попросит Вас подтвердить, что Вы действительно хотите удалить всю строку листа и после этого очистите фильтр. Как видите, остались только строки с уникальными значениями:

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

Как видите, удалить дубликаты из двух столбцов в Excel при помощи формул – это не так уж сложно.

​ эти два файла​If Worksheets("Лист1").Cells(i, 1)​ потому что в​, то Excel выделит​ на выходе логические​ Excel. Нам нужно​

Анализ книги

​ другую программу, выберите​​ хранятся в разных​ ​ добавить пароль книги​Эта схема отображает​ кнопку​ автоматически, поэтому ее​ можно будет уменьшить​ файл, что то​ отбора, мне нужны​ выделять вместо ID​ что нужно их​ по значениям одного​ = Worksheets("Лист2").Cells(i, 1)​ 500000 строк каждое​ цветом совпадения в​

​ значения​ получить следующий результат:​Home > Copy Results to​

​ папках.​

Отображение связей книги

​ в список паролей,​ связи между листами​Пуск​ текст может содержать​ конечный массив уникальных​​ много у меня​ ​ строки полностью.​ ячейку в пустом​ красить:)​ из столбцов (скажем​ Then " Если​ значение повторяется максимум​ наших списках, если​ИСТИНА (TRUE)​​ Clipboard​Нажмите кнопку​ чтобы с помощью​ четырех различных книг​, выберите пункт​ неточности и грамматические​Else: .Add key:=arrA(i,​ переходных массивов получилось.​Тем не менее​ столбце.​

​Hugo​ по столбцу B,​ названия совпали​ дважды), на файле​ опцию​или​Позиции, которые есть в​(Главная > Копировать результаты​ОК​ надстройки Inquire (Запрос)​


​ с зависимостями между​Все программы​ ошибки. Для нас​ 1), Item:=1 "заносим​

Отображение связей листа

​ Не понял как​ весьма благодарен за​​Т.е. выделяете ячейку​ ​: Кстати, я недавно​ можно заранее привести​Range(Worksheets("Лист1").Cells(i, 1), Worksheets("Лист1").Cells(i,​ более 50Мб у​Уникальные​ЛОЖЬ (FALSE)​ Таблице_1, но нет​ в буфер обмена).​, чтобы выполнить сравнение.​ можно было открыть​ листами в одной​
​, а затем щелкните​ важно, чтобы эта​ значение в словарь​ по заданному значению​ помощь, возможно мне​ с данными одного​ уже ссылку давал​ файлы к одному​ 10)).Select​ меня комп повесился​- различия.​:​ в Таблцие_2 будут​Чтобы отобразить форматирование ячеек​Примечание:​

​ сохраненную копию книги.​ и той же​Microsoft Office 2013​ статья была вам​

Отображение связей ячейки

​ и указываем на​ Item вытащить Key.​ Ваша обработка поможет​ файла, затем пустую​ на файлик:​ виду). Теоретически значения​" здесь 10​​Данные можно разместить​ ​Цветовое выделение, однако, не​Число несовпадений можно посчитать​ отображаться зеленым цветом.​ из книги, выберите​ Появление сообщения "Не​ Используйте команду​ книге, а также​

​,​ полезна. Просим вас​ первое повторение​Юрий М​ достичь требуемого результата,​ ячейку рядом с​ibay.narod.ru/other/DoublesRemoveTwoColumns_v6.rar​ в файле 1​ - это номер​ на листах в​ всегда удобно, особенно​ формулой:​ В тоже время​Home > Show Workbook Colors​


​ удается открыть книгу"​Workbook Passwords​ связями между листами​Средства Office 2013​

​ уделить пару секунд​

Очистка лишнего форматирования ячеек

​End If​: А я ещё​ попробую разобраться в​ данными, затем аналогично​Можете сразу открыть​ и файле 2,​ последнего столбца в​ одной книге, это​ для больших таблиц.​​=СУММПРОИЗВ(--(A2:A20<>B2:B20))​ ​ позиции, находящиеся в​(Главная > Показать цвета​ может означать, что​(Пароли книги) на​ в других книгах.​и​ и сообщить, помогла​Next i​

​ и не подступался.​ ​ коде. Спасибо.​ данные и пустую​ два своих файла​ этого столбца, должны​ таблице​ не принципиально, привести​ Также, если внутри​или в английском варианте​ Таблице_2, но отсутствующие​

​ книги).​ книга защищена паролем.​ вкладке​ Когда вы наводите​

Управление паролями

​Средство сравнения электронных таблиц​ ли она вам,​For i =​ :-)​Если кто то​ во втором файле.​ и обработать этим.​ быть одинаковы, на​With Selection.Interior​ таблицы к одинаковому​ самих списков элементы​ =SUMPRODUCT(--(A2:A20<>B2:B20))​​ в Таблице_1, будут​ ​Допустим, в вашей организации​ Нажмите кнопку​​Inquire​ ​ указатель мыши на​ 2013​ с помощью кнопок​ 1 To UBound(arrB)​Hugo​ ещё что нибудь​

​Steel Rain​Думаю, должно отработать​ практике возможны расхождения,​.ColorIndex = 4​ виду тоже, вся​ могут повторяться, то​Если в результате получаем​

​ подсвечены синим цветом.​

Сравнение двух версий книги с помощью средства сравнения электронных таблиц

​ ожидается аудиторская проверка.​ОК​(Запрос), чтобы добавить​ узел схемы, например​.​ внизу страницы. Для​ "данные другого столбца​: Вот тут не​ может посоветовать в​: Привел файлы к​ быстро. Если попробуете​ которые и требуется​ " Эта строчка​ проблема в объеме​

​ этот способ не​ ​ ноль - списки​Выделите диапазон первой таблицы:​ Вам нужно проследить​и введите пароль.​ пароли, которые будут​

​ и доступны только​ ​Подробнее об этом можно​ узнать в статье​Предположим, что вы хотите​ .Item(arrB(i, 1)) +​If .exists(arrA(i, 1))​​Hugo​ ​ - столбец А,​ процесса, для чего​ 1, которых нет​End With​ будет работать.​СЧЁТЕСЛИ​

​ Формулу надо вводить​ для определения форматированных​ месяцам и по​ средства сравнения электронных​ вам.​ узнать в статье​ Сравнение двух версий​ Сравнение версий книги,​ 1​ Then​: Для строк полностью​ затем столбец Б​ выделять по две​ в файле 2​End If​P.S. поиском по​(COUNTIF)​


Интерпретация результатов

Другие способы работы с результатами сравнения

​Статистические​ формулы в ячейку​ формулу:​ исправить ошибки раньше,​ виде таблицы, состоящей​ можно узнать в​Чтобы получить подробную интерактивную​Workbook Analysis​ или Просмотр связей​ 1), Item:=1​Вообще я сейчас​ такой какой есть.​ ячейку из стобца​ файлах (ну или​ или быстрее работать,​

    ​Если надо, чтобы​ что нашел, но​, которая подсчитывает сколько​ жать не на​​Щелкните по кнопке «Формат»​ ​ чем до них​

    ​ из двух частей.​ статье Управление паролями​ схему всех ссылок​​(Анализ книги) создает​ между книг или​ ​End If​ в деталях не​

    ​Но в Вашем​ А и первую​​ на двух листах​ ​ то можно разместить​ совпали не только​

Другие причины для сравнения книг

    ​ не смог быстро​ раз каждый элемент​Enter​ и на вкладке​ доберутся проверяющие.​ Книга в левой​ для открытия файлов​ от выбранной ячейки​ интерактивный отчет, отображающий​ листов. Если на​Next i​ помню тот код,​

    ​ примере ведь нет​ из столбца Б.​ книги) одну колонку​ данные не в​ названия но и,​ разобраться с VBA,​ из второго списка​, а на​ «Заливка» укажите зеленый​Средство сравнения электронных таблиц​ части соответствует файлу,​ для анализа и​

Сравнение двух таблиц в Excel на совпадение значений в столбцах

​ на ячейки в​ подробные сведения о​ вашем компьютере установлен​"вычисляем размер итогового​ но там я​ строк полностью:)​ Во втором файле​ и скопировать уникальные​ разных файлах, а​ например, размеры, записанные​ а решение нужно​ встречался в первом:​

Сравнение двух столбцов на совпадения в Excel

​Ctrl+Shift+Enter​ цвет. На всех​ можно использовать не​ указанному в поле​ сравнения.​ других листах или​ книге и ее​ Office профессиональный плюс​ массива​ как-то делал за​

​А без реального​ так же. Результат​ значения в другой​ на страницах одной​ во 2 столбец,​

  1. ​ срочно. Заранее признателен.​Полученный в результате ноль​
  2. ​.​ окнах жмем ОК.​ только для сравнения​
  3. ​ "Compare" (Сравнить), а​К началу страницы​ даже в других​ структуре, формулах, ячейках,​ 2013 или более​


​p = .Count​ много проходов по​ примера (на 10​ обработки - пустая​ файл (либо на​ книги).​

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

​ - p "+​ словарям, чтоб из​ строк например) полностью​ таблица. Хотя визуально​ другой лист).​

​Пробовал решить данную​

​If Worksheets("Лист1").Cells(i, 1)​: Через ф-цию ВПР​ отличиях.​ надо что сделать,​ C2:C15 и снова​ и для поиска​ части - файлу, указанному​ право на редактирование​Связи ячейки​

Принцип сравнения данных двух столбцов в Excel

​Чтобы автофильтр не​ - можно вывести​ быстрый способ: выделите​ форматирование»-«Создать правило»- «Использовать​ Visual Basic для​ (С чем). Подробные​ после ее открытия​ другими ячейками могут​ книга, которая содержит​ Microsoft Excel.​ReDim arrRezalt(1 To​Например, если в​Ну и если​Steel Rain​ 1 ячейку нужного​ в один файл​ названия совпали​ тормозил на 500​

​ отличия отдельным списком.​ оба столбца и​

​ формулу для определения​ приложений (VBA). Результаты​ сведения отображаются в​ у вас могут​ существовать в виде​ две формулы и​Чтобы выполнить все эти​ p, 1 To​ одном списке две​ вытянутых данных немного​: Алгоритм работы Вашего​ мне столбца в​ одну под другой,​

Поиск отличий в двух списках

​If Worksheets("Лист1").Cells(i, 2)​ тыс.строк, от формул​ Для этого придется​ нажмите клавишу​ форматированных ячеек:».​ отображаются в окне​ области под двумя​ возникнуть вопросы "Кто​ формул или ссылок​ подключения данных к​

Вариант 1. Синхронные списки

​ и другие задачи,​ 1)​ единицы, а во​ - то ведь​ модуля объясните пожалуйста.​ первом файле, и​ потом делал Условное​ = Worksheets("Лист2").Cells(i, 2)​ нужно будет избавиться.​ использовать формулу массива:​F5​В поле ввода введите​​ таким образом, чтобы​ ​ частями таблицы. Изменения​​ ее изменил? И​ ​ на именованные диапазоны.​

​ базе данных Access​ вы можете использовать​

​ втором одна, то​ по ним можно​

​Steel Rain​ 1 ячейку во​ форматирование-Правила выделения ячеек-Повторяющиеся​ Then " И​Для этого скопировать​Выглядит страшновато, но свою​, затем в открывшемся​ формулу:​ различия можно было​ выделяются разными цветами​​ что именно изменилось?"​ ​ Схема может пересекать​​ и текстовому файлу.​ ​ команды на вкладке​

​For Each x​ код покажет, что​ формулами подтянуть остальное​: а, ещё, пардонте,​ втором. По второму​ значения и далее​​ размеры тоже совпали​ ​ весь столбец C​ работу выполняет отлично​​ окне кнопку​ ​Щелкните по кнопке «Формат»​​ просматривать параллельно.​ в соответствии с​ ​ Средство сравнения электронных​ листы и книги.​Подробнее об этом можно​​Inquire​ In .keys "начинаем​ не совпадает одна​ из тех строк.​ ​ забыл уточнить, значения​​ запросу 2-ую ячейку​


​ в этой колонке​Range(Worksheets("Лист1").Cells(i, 1), Worksheets("Лист1").Cells(i,​ в буфер обмена,​ ;)​

  • ​Выделить (Special)​ и на вкладке​
  • ​У нас имеется две​​ их типом.​
  • ​ таблиц от Майкрософт​В данной схеме отображаются​ узнать в разделе​​(Запрос). Вкладка​
  • ​ перебор данных в​ единица первого списка.​С помощью ВПР()​​ в ячейках по​ в том же​ фильтр по цвету​ 10)).Select​ правый клик >>​
  • ​Steel Rain​

Вариант 2. Перемешанные списки

​-​ «Заливка» укажите синий​ таблицы заказов, скопированных​В двух расположенных рядом​ поможет вам ответить​ два уровня связей​

​ Анализ книги.​Inquire​ словаре по ключам​Ну а по​ или индекса с​ которым нужен отбор​ столбце в первом​​ заливки. На файле​" здесь 10​ специальная вставка >>​: Доброго всем времени​Отличия по строкам (Row​ цвет. На всех​ в один рабочий​ ​ частях таблицы сравнивается​


​ на эти вопросы -​​ ячейки для ячейки​ ​К началу страницы​(Запрос) ленты Excel​If .Item(x) =​ итему думаю кей​​ поискпозицией:)​ ​ строковые​

​ файле и 2-ую​ в 8Мб данный​ - это номер​ значения.​ суток.​ differences)​ окнах жмем ОК.​ лист. Необходимо выполнить​

​ каждый лист из​ найдет изменения и​​ A10 на листе​ ​В книгах, связанных с​ ​ содержит кнопки для​​ 1 Then "если​ ​ не получить без​То, что там​Hugo​ во втором. Получил​


​ способ занимает около​ последнего столбца в​Похожая тема:​

​Сразу скажу, практически​. В последних версиях​При определении условий для​ сравнение данных двух​ обоих файлов, начиная​


​ выделит их.​ 5 в книге​ другими книгами с​

​ описанных ниже команд.​ ​ данный ключ повторился​ перебора. Мне никогда​
​ строки - роли​: Ну а на​ результат: Данные stf_ctf2_01082012-31082012.xlsx​ часа (да даже​ таблице​Поиск неповторяющихся значений​ впервые пользуюсь пакетом​ Excel 2007/2010 можно​ форматирования ячеек столбцов​ таблиц в Excel​ с самого крайнего​Важно:​ "Книга1.xlsx". Эта ячейка​ помощью ссылок на​Если вкладка​ 1 раз, заносим​ такое и не​ не играет. Должно​ Вашем приложенном файле​ Суммы stf_ctf2_01082012-31082012.xlsx Данные​ само открытие окна​With Selection.Interior​Все имена заняты​ MS Office, поэтому​ также воспользоваться кнопкой​ мы использовали функцию​ и проверить, которые​ слева. Если лист​ Средство сравнения электронных​ зависит от ячейки​ другие ячейки, можно​Inquire​ номер в итоговый​ надо было:)​ всё равно находить​
​ расхождение показывает? У​ stf_ctf2_01082012-31082012.xlsx Суммы stf_ctf2_01082012-31082012.xlsx​ фильтра в этой​.ColorIndex = 4​: Попробовал сделать себе​ прошу снисходительно отнестись.​Найти и выделить (Find​ СЧЕТЕСЛИ. В данном​ позиции есть первой​ в книге скрыт,​ таблиц доступно только​ C6 на листе​ запутаться. Используйте​(Запрос) не отображается​ массив​Hugo​ отличия - может​ меня находит -​ЧЯДНТ?​ колонке занимает около​ " Эта строчка​ файл на 500тыс.​ Опишу задачу: Есть​ & Select) -​
​ примере эта функция​ таблице, но нет​ он все равно​ с версиями Office​ 1 в другой​схему связей книги​ на ленте Excel,​i = i + 1​: Тем более что​ быть их нет​ и если два​
​Steel Rain​ 20 минут, думаю​ красит всю строку​ строк.​ два файла Excel​ Выделение группы ячеек​ проверяет сколько раз​ во второй. Нет​

​ отображается и сравнивается​ ​ профессиональный плюс 2013 и​ книге - "Книга2.xlsx" и​
​для создания интерактивной​ см. раздел Включение​arrRezalt(i, 1) =​ итемы могут быть​
​ (позиция роли не​ раза данные указывать,​: Ещё раз попробовал​ потому что в​ в зеленый цвет​При таком количестве​
​ 2010, в каждом​
​ (Go to Special)​

​ встречается значение второго​ ​ смысла вручную сравнивать​ в средстве сравнения​ Office 365 профессиональный плюс.​
​ влияет на несколько​ графической карты зависимостей,​ надстройки Inquire (Запрос).​ x​

​ одинаковые у разных​ ​ играет)?​ и если данные​ запустить предложенную обработку,​

​ 500000 строк каждое​ ​.Pattern = xlSolid​ строк способ выше,​ порядка 300-500 тысяч​на вкладке​

Люди подскажите пожалуйста, как в двух файлах excel найти совпадения????помогите очень нужно!!!

​ аргумента (например, A2)​ значение каждой ячейки.​ электронных таблиц.​Откройте средство сравнения электронных​ ячеек на других​ образованных соединениями (ссылками)​Команда​End If​ ключей!​А в коде​ и пустой столбец.​ выбрал в первом​

​ значение повторяется максимум​ ​End With​ увы, не прокатывает.​ строк, нужно сравнить​Главная (Home)​ в списке первого​Как сделать сравнение значений​Если содержимое не умещается​
​ таблиц.​ листах в том​ между файлами. Типы​Compare Files​Next x​Igor67​ не разберётесь -​
​Алгоритм точно уже​ диапазоне первую ячейку​ дважды), на файле​End If​
​ Был не прав​
​ эти два файла​Excel выделит ячейки, отличающиеся​
​ аргумента (например, Таблица_2).​ в Excel двух​ в ячейках, выберите​В левой нижней области​
​ же файле.​ ссылок в схеме​
​(Сравнить файлы) позволяет​End With​: Спасибо за отклики.​ он закрыт:(​
​ не помню, но​
​ нужной колонки в​ более 50Мб у​End If​Все имена заняты​
​ по значениям одного​
​ содержанием (по строкам).​
​ Если количество раз​
​ столбцов? Для решения​
​ команду​
​ выберите элементы, которые​Подробнее о просмотре связей​ могут включать другие​ просмотреть различия между​"выгружаем данные на​ Игорь, там где​
​Hugo​ там исключаются все​ первом файле, во​ меня комп повесился​
​Примерно так​: Если в обоих​ из столбцов (скажем​ Затем их можно​
​ = 0 в​ данной задачи рекомендуем​
​Resize Cells to Fit​ хотите включить в​ ячейки можно узнать​ книги, базы данных​
​ двумя книгами по​
​ лист​ не понял это​: Для проверки попробуйте​ парные значения (с​
​ втором диапазоне пустую​
​ :(​
​Alex ivanov​
​ файлах шестизначные числа,​
​ по столбцу B,​

​ обработать, например:​ ​ таком случае формула​

​ использовать условное форматирование,​ ​(Размер ячеек по​ сравнение книг, например​ в статье Просмотр​ Access, текстовые файлы,​ ячейкам. Чтобы выполнить​Лист3..Resize(p).Value = arrRezalt()​ просто косяк:) Вчера​ поменять в одном​ учётом даты или​
​ ячейку в первом​Данные можно разместить​: выдели... и...подготовить... свойства...​ то вариант макросом.​
​ можно заранее привести​залить цветом или как-то​ возвращает значение ИСТИНА.​ которое быстро выделить​ размеру данных).​ формулы, форматирование ячеек​ ссылок между ячейками.​
​ HTML-страницы, базы данных​
​ эту команду, нужно​End Sub​ не смог перебрать​ файле пару значений​ ID), оставшиеся собираются​

Сравнить два больших файла на уникальные значения в строках

​ файле. В третьем​ ​ на листах в​Oaobv​

​kuklp​ файлы к одному​ еще визуально отформатировать​ В таком случае​ цветом позиции, находящиеся​Различия разного типа выделяются​ или макросы. Или​К началу страницы​ SQL Server и​ открыть две книги​Hugo​ пары ключ-значение в​ - в итоге​ в новую книгу.​ диапазоне первую ячейку​ одной книге, это​: Да проще можно!​: Интересное решение. Но​ виду). Теоретически значения​очистить клавишей​ ячейке присваивается пользовательский​ только в одном​ с помощью цвета​ просто выберите вариант​Если книга при открытии​ другие источники данных.​ в Excel.​: Да, так должно​ словаре. Сегодня получилось.​ должно найтись по​Т.е. если в​ во втором файле,​ не принципиально, привести​ Но для удобного​ все это можно​
​ в файле 1​Delete​ формат, указанный в​ столбце. Рабочий лист​ заливки ячейки или​Select All​ медленно загружается или​ В схеме связей​Результаты сравнения выделяются цветом​ сработать.​ Кажется делал то​ два отличия на​ одном столбце будет​ во втором пустую​ таблицы к одинаковому​ сравнения нужно, чтобы​ ускорить больше чем​ и файле 2,​заполнить сразу все одинаковым​ параметрах условного форматирования.​ с таблицами:​ цвета шрифта текста.​(Выделить все).​ ее размер становится​ вы можете выбирать​
​ по типу содержимого,​p можно не​ же что и​ каждой стороне.​1​ ячейку во втором​ виду тоже, вся​ структура таблиц была​ в 20 раз:-)​ этого столбца, должны​ значением, введя его​

​Скачать пример сравнения 2​В первую очередь необходимо​ Например, ячейки с​На вкладке​ чрезмерным, вероятной причиной​ элементы и находить​ например по введенным​ считать - просто​

​ вчера, но... Код​ ​Guest​2​

​ файле. Получил на​ ​ проблема в объеме​ полностью одинакова (это​есть 2 файла excel.​ быть одинаковы, на​ и нажав​ таблицы в Excel​ присвоить имена обоим​ введенными значениями (не​Home​

​ этого может быть​ о них дополнительные​ значениям, формулам, именованным​ объявляем массив размером​
​ должен быть рабочим,​: Steel Rain!​3​ выходе колонку со​
​ файлов. Подскажите пожалуйста​ и вам нужно,​ В обоих перечислины​

​ практике возможны расхождения,​ ​Ctrl+Enter​Ссылка во втором аргументе​ таблицам. Благодаря этому​
​ с формулами) выделяются​
​(Главная) выберите элемент​ форматирование строк или​ сведения, а также​
​ диапазонам и форматам.​ со словарь, а​ без проверок на​

​Если вопрос актуален,​ ​а во втором​ всеми значениями из​ какой нибудь алгоритм,​ так как иначе​ названия деталей, их​ которые и требуется​удалить все строки с​ относительная, значит по​ легче понять, какие​ заливкой зеленого цвета​Compare Files​ столбцов, о котором​
​ перетаскивать линии соединения​ Имеется даже окно,​ после его заполнения​ ошибочные данные или​ укажите E-mail для​1​ двух файлов (не​ который не сутки​ возмножны дубли данных​ очень много! в​ обнаружить. Т.е. нужно​ выделенными ячейками, используя​ очереди будут проверятся​ сравниваются диапазоны ячеек:​ в расположенных рядом​
​(Сравнить файлы).​

​ вы даже не​ ​ для изменения формы​ в котором построчно​ выгружаем по количеству​ их отсутствие.​ отправки файла.​1​ проверял, но по​ будет работать.​ и некорректные результаты).​ этих файлах есть​ найти все уникальные​ команду​ все ячейки выделенного​Выберите инструмент «ФОРМУЛЫ»-«Определенные имена»-«Присвоить​ частях таблицы и​В диалоговом окне​ подозреваете. Используйте команду​ схемы.​ могут отображаться изменения​ i (это ведь​Sub getUniq() "извлечение​Hugo​3​ виду так, судя​P.S. поиском по​

​1) Копируете списки​ ​ много совпадений, мне​ значения в файле​Главная - Удалить -​ диапазона (например, A2:A15).​ имя».​ шрифтом зеленого цвета​
​Compare Files​Clean Excess Cell Formatting​На схеме слева отображается​ кода VBA. Различия​ всё равно считается​
​ только уникальных записей​: Мне интересно, как​то расхождение будет​ по количеству, просто​ форуму воспользовался как​ в два столбца​ нужно сравнить эти​ 1, которых нет​ Удалить строки с​

​ Например, для сравнения​ ​В появившемся окне в​ в области результатов.​(Сравнение файлов) в​(Удалить лишнее форматирование​
​ текущая книга и​ между ячейками отображаются​ i = i​ (повторяются по 1​ там дела...​2 в первом​ расхождений должно быть​

​ смог, опробовал то​ ​ рядом на один​ два документа по​ в файле 2​ листа (Home -​ двух прайсов в​ поле «Имя:» введите​ В левой нижней​ строке​ ячеек) для удаления​ соединения между ней​ в удобной для​ + 1).​ разу)​Юрий М​ файле и 1​ не более 100-500,​ что нашел, но​

​ лист.​ ​ диапазонам и совпадения​ и, соответственно, наоборот.​

​ Delete - Delete​ ​ Excel даже на​ значение – Таблица_1.​ части указаны условные​Compare​ лишнего форматирования и​

​ и другими книгами​ ​ восприятия таблице.​Т.е. пустой низ​Dim arrA(), arrB(),​: Игорь, судя по​ во втором.​ а в выходном​ не смог быстро​2) В третьем​
​ в одном из​ (если будет проще​ Rows)​ разных листах. Вторая​Левой клавишей мышки сделайте​ обозначения, поясняющие значения​(Сравнить) с помощью​
​ значительного уменьшения размера​ и источниками данных.​
​Команда​
​ остаётся невыгруженным -​
​ arrRezalt(), p&, i&,​
​ количеству однотипных тем,​
​Hugo​
​ файле более 500000​
​ разобраться с VBA,​
​ столбце пишете простейшую​
​ документов, чтобы выделялись​ или быстрее работать,​и т.д.​

​ формула действует аналогично.​ ​ щелчок по полю​ цветов.​ кнопки обзора​
​ файла. Это помогает​ На схеме также​Сравнить файлы​ чуть больше расход​ x​ пора завести "Уголок​

​: То, что там​ ​ строк).​ а решение нужно​ формулу, которая сравнивает​ каким нибуть цветом!!!​ то можно разместить​Если списки разного размера​ Этот же принцип​ ввода «Диапазон:» и​Если вы хотите сохранить​выберите более раннюю​ избежать "раздувания электронной​ отображаются дополнительные уровни​сравнивает два файла​ памяти, зато код​"забираем данные в​ Hugo - сравнение​
​ строки - роли​Hugo​ срочно. Заранее признателен.​ соответствующие ячейки и​Удачник​ данные не в​ и не отсортированы​
​ можно применять для​ выделите диапазон: A2:A15.​ результаты или проанализировать​ версию книги. Помимо​ таблицы", что увеличивает​ соединений книги, предоставляя​

​ с помощью средства​ ​ проще.​ массив для обработки​ двух столбцов/файлов". :-)​ не играет.​
​: Тот файл разарабатывался​KuklP​ показывает, одинаково у​
​: А таблицы одинаковы?​ разных файлах, а​ (элементы идут в​ разных подобных задач.​ И нажмите ОК.​
​ их в другом​ выбора файлов, сохраненных​ скорость работы Excel.​ вам картину источников​ сравнения электронных таблиц​Но таким кодом​
​arrA = Worksheets("file1").Range("b2:b"​Hugo​Ну а пустой​

​ для сверки платёжек,​: Обращайтесь. Адрес в​ них содержимое, или​ То есть, например,​ на страницах одной​ разном порядке), то​Типовая задача, возникающая периодически​Для второго списка выполните​
​ приложении, экспортируйте их​ на компьютере или​Важно:​

​ данных для книги.​ ​ (Майкрософт).​ отберутся только значения,​ & Worksheets("file1").Cells(Rows.Count, 2).End(xlUp).Row).Value​: Ну тут я​ столбец лучше не​ поэтому там нужно​ подписи.​

​ нет:​ ​ названия деталей в​
​ книги).​ придется идти другим​ перед каждым пользователем​

​ те же действия​ ​ в файл Excel​ в сети, можно​

​ Перед очисткой лишнего форматирования​ ​Подробнее об этом можно​В Windows 10 вы​ встреченные 1 раз.​arrB = Worksheets("file2").Range("b2:b"​ ни строчки кода​

​ выбирать - выбирайте​ ​ выделять по две​Hugo​=IF(A3=B3;"Одинаковое";"Разное"),​
​ столбце А, размер​Пробовал решить данную​ путем.​ Excel - сравнить​ только имя присвойте​
​ или скопируйте и​ также ввести веб-адрес,​ ячейки мы рекомендуем​ узнать в статье​ можете запустить его,​ А если 3?​

​ & Worksheets("file2").Cells(Rows.Count, 2).End(xlUp).Row).Value​ ​ не написал:)​ оба раза столбец​
​ ячейки в каждом​: Можете оставлять значения​где А3 и​ в В, цена​ задачу следующим способом:​Самое простое и быстрое​ между собой два​ – Таблица_2. А​ вставьте в другую​

​ ведущий к книге,​ ​ создать резервную копию​ Просмотр связей между​ не открывая Excel.​

​KuklP​ ​"создаем словарь для​Но интересно, как​

​ с данными, так​ файле.​
​ и в разных​ В3 - это​

​ в С и​ объединял обе таблицы​
​ решение: включить цветовое​ диапазона с данными​ диапазон укажите C2:C15​ программу, например Microsoft​ сохраненной на сайте.​ файла, так как​ книгами.​ Для этого нажмите​: Посмотрите. Два диапазона​
​ извлечения уникальных​ сравнилось - но​ надёжнее:)​Т.е. в одном​ файлах, но код​ ячейки с одинаковыми​ т. д. ?​

​ в один файл​ выделение отличий, используя​ и найти различия​ – соответственно.​ Word. Можно также​В диалоговом окне​

​ иногда это может​ ​При наличии множества взаимозависимых​ кнопку​ по 500000 строк,​With CreateObject("scripting.dictionary")​

​ боюсь тема ушла​ ​Steel Rain​ цену и дату​ проще написать, когда​ данными из разных​И тоже самое​ одну под другой,​ условное форматирование. Выделите​ между ними. Способ​Полезный совет! Имена диапазонов​ получить более точное​Compare Files​ привести к увеличению​ листов используйте​Пуск​
​ у меня посчиало​For i =​ за предел отображаемых​: Согласен, с приведенным​
​ платежа(или ID платежа),​ значения рядом на​ списков.​
​ во второй таблице?​ потом делал Условное​
​ оба диапазона с​ решения, в данном​
​ можно присваивать быстрее​ представление каждого листа​
​(Сравнение файлов) в​ размера файла, а​
​схему связей листа​
​, введите​ за 67 сек.​
​ 1 To UBound(arrA)​ :(​ мной файлом примера​ и во втором​
​ разных листах (или​Steel Rain​
​ А можно скопировать​ форматирование-Правила выделения ячеек-Повторяющиеся​ данными и выберите​
​ случае, определяется типом​ с помощью поля​ с отображением форматирования​ строке​ отменить эти изменения​
​для создания интерактивной​Средство сравнения электронных таблиц​ Зависит от скорости​If .exists(arrA(i, 1))​Я с работы​
​ обработка выполняется и​
​ аналогично.​

​ в одном, без​: Доброго всем времени​ таблицу из 2​
​ значения и далее​ на вкладке​
​ исходных данных.​ имен. Оно находится​ ячеек, близкое к​
​To​
​ невозможно.​ графической карты соединений​
​и щелкните​
​ машины и к-ва​
​ Then "если значение​ её уже не​
​ выдает результат, видимо​В Вашем случае​ разницы) - так​
​ суток.​
​ книги в 1​ в этой колонке​Главная - Условное форматирование​
​Если списки синхронизированы (отсортированы),​
​ левее от строки​ тому, что вы​(С чем) с​Подробнее об этом можно​
​ (ссылок) между листами​Средство сравнения электронных таблиц​ отобранных. Можно еще​ ключ есть в​ видел, и по​ дело в том,​
​ - оба раза​
​ писанины меньше.​Сразу скажу, практически​
​ книгу на 2​
​ фильтр по цвету​
​ - Правила выделения​
​ то все делается​ формул. Просто выделяйте​
​ видите в Excel.​
​ помощью кнопки обзора​

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

Довольно часто перед пользователями Excel стоит задача сравнения двух таблиц или списков для выявления в них отличий или недостающих элементов. Каждый юзер справляется с этой задачей по своему, но чаще всего на решение указанного вопроса тратится довольно большое количество времени, так как далеко не все подходы к данной проблеме являются рациональными. В то же время, существует несколько проверенных алгоритмов действий, которые позволят сравнить списки или табличные массивы в довольно сжатые сроки с минимальной затратой усилий. Давайте подробно рассмотрим данные варианты.

Существует довольно много способов сравнения табличных областей в Excel, но все их можно разделить на три большие группы:

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

    Кроме того, следует сказать, что сравнивать табличные области имеет смысл только тогда, когда они имеют похожую структуру.

    Способ 1: простая формула

    Самый простой способ сравнения данных в двух таблицах – это использование простой формулы равенства. Если данные совпадают, то она выдает показатель ИСТИНА, а если нет, то – ЛОЖЬ. Сравнивать можно, как числовые данные, так и текстовые. Недостаток данного способа состоит в том, что ним можно пользоваться только в том случае, если данные в таблице упорядочены или отсортированы одинаково, синхронизированы и имеют равное количество строчек. Давайте посмотрим, как использовать данный способ на практике на примере двух таблиц, размещенных на одном листе.

    Итак, имеем две простые таблицы со списками работников предприятия и их окладами. Нужно сравнить списки сотрудников и выявить несоответствия между столбцами, в которых размещены фамилии.

    1. Для этого нам понадобится дополнительный столбец на листе. Вписываем туда знак «=» . Затем кликаем по первому наименованию, которое нужно сравнить в первом списке. Опять ставим символ «=» с клавиатуры. Далее кликаем по первой ячейке колонки, которую мы сравниваем, во второй таблице. Получилось выражение следующего типа:

      Хотя, конечно, в каждом конкретном случае координаты будут отличаться, но суть останется одинаковой.

    2. Щелкаем по клавише Enter , чтобы получить результаты сравнения. Как видим, при сравнении первых ячеек обоих списков программа указала показатель «ИСТИНА» , что означает совпадение данных.
    3. Теперь нам нужно провести аналогичную операцию и с остальными ячейками обеих таблиц в тех колонках, которые мы сравниваем. Но можно просто провести копирование формулы, что позволит существенно сэкономить время. Особенно данный фактор важен при сравнивании списков с большим количеством строк.

      Процедуру копирования легче всего выполнить при помощи маркера заполнения. Наводим курсор на правый нижний угол ячейки, где мы получили показатель «ИСТИНА» . При этом он должен преобразоваться в черный крестик. Это и есть маркер заполнения. Жмем левую кнопку мыши и тянем курсор вниз на количество строчек в сравниваемых табличных массивах.

    4. Как видим, теперь в дополнительном столбце отобразились все результаты сравнения данных в двух колонках табличных массивов. В нашем случае не совпали данные только в одной строке. При их сравнении формула выдала результат «ЛОЖЬ» . По всем остальным строчкам, как видим, формула сравнения выдала показатель «ИСТИНА» .
    5. Кроме того, существует возможность с помощью специальной формулы подсчитать количество несовпадений. Для этого выделяем тот элемент листа, куда оно будет выводиться. Затем щелкаем по значку «Вставить функцию» .
    6. В окне Мастера функций в группе операторов «Математические» выделяем наименование СУММПРОИЗВ . Щелкаем по кнопке «OK» .
    7. Активируется окно аргументов функции СУММПРОИЗВ , главной задачей которой является вычисление суммы произведений выделенного диапазона. Но данную функцию можно использовать и для наших целей. Синтаксис у неё довольно простой:

      СУММПРОИЗВ(массив1;массив2;…)

      Всего в качестве аргументов можно использовать адреса до 255 массивов. Но в нашем случае мы будем использовать всего два массива, к тому же, как один аргумент.

      Ставим курсор в поле «Массив1» и выделяем на листе сравниваемый диапазон данных в первой области. После этого в поле ставим знак «не равно» (<> ) и выделяем сравниваемый диапазон второй области. Далее обворачиваем полученное выражение скобками, перед которыми ставим два знака «-» . В нашем случае получилось такое выражение:

      --(A2:A7<>D2:D7)

      Щелкаем по кнопке «OK» .

    8. Оператор производит расчет и выводит результат. Как видим, в нашем случае результат равен числу «1» , то есть, это означает, что в сравниваемых списках было найдено одно несовпадение. Если бы списки были полностью идентичными, то результат бы был равен числу «0» .

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

    B2=Лист2!B2

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

    Способ 2: выделение групп ячеек

    Сравнение можно произвести при помощи инструмента выделения групп ячеек. С его помощью также можно сравнивать только синхронизированные и упорядоченные списки. Кроме того, в этом случае списки должны располагаться рядом друг с другом на одном листе.


    Способ 3: условное форматирование

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


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


    При желании можно, наоборот, окрасить несовпадающие элементы, а те показатели, которые совпадают, оставить с заливкой прежним цветом. При этом алгоритм действий практически тот же, но в окне настройки выделения повторяющихся значений в первом поле вместо параметра «Повторяющиеся» следует выбрать параметр «Уникальные» . После этого нажать на кнопку «OK» .

    Таким образом, будут выделены именно те показатели, которые не совпадают.

    Способ 4: комплексная формула

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

    Оператор СЧЁТЕСЛИ относится к статистической группе функций. Его задачей является подсчет количества ячеек, значения в которых удовлетворяют заданному условию. Синтаксис данного оператора имеет такой вид:

    СЧЁТЕСЛИ(диапазон;критерий)

    Аргумент «Диапазон» представляет собой адрес массива, в котором производится подсчет совпадающих значений.

    Аргумент «Критерий» задает условие совпадения. В нашем случае он будет представлять собой координаты конкретных ячеек первой табличной области.


    Конечно, данное выражение для того, чтобы сравнить табличные показатели, можно применять и в существующем виде, но есть возможность его усовершенствовать.

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

    1. Прежде всего, немного переработаем нашу формулу СЧЁТЕСЛИ , а именно сделаем её одним из аргументов оператора ЕСЛИ . Для этого выделяем первую ячейку, в которой расположен оператор СЧЁТЕСЛИ . В строке формул перед ней дописываем выражение «ЕСЛИ» без кавычек и открываем скобку. Далее, чтобы нам легче было работать, выделяем в строке формул значение «ЕСЛИ» и жмем по иконке «Вставить функцию» .
    2. Открывается окно аргументов функции ЕСЛИ . Как видим, первое поле окна уже заполнено значением оператора СЧЁТЕСЛИ . Но нам нужно дописать кое-что ещё в это поле. Устанавливаем туда курсор и к уже существующему выражению дописываем «=0» без кавычек.

      После этого переходим к полю «Значение если истина» . Тут мы воспользуемся ещё одной вложенной функцией – СТРОКА . Вписываем слово «СТРОКА» без кавычек, далее открываем скобки и указываем координаты первой ячейки с фамилией во второй таблице, после чего закрываем скобки. Конкретно в нашем случае в поле «Значение если истина» получилось следующее выражение:

      СТРОКА(D2)

      Теперь оператор СТРОКА будет сообщать функции ЕСЛИ номер строки, в которой расположена конкретная фамилия, и в случае, когда условие, заданное в первом поле, будет выполняться, функция ЕСЛИ будет выводить этот номер в ячейку. Жмем на кнопку «OK» .

    3. Как видим, первый результат отображается, как «ЛОЖЬ» . Это означает, что значение не удовлетворяет условиям оператора ЕСЛИ . То есть, первая фамилия присутствует в обоих списках.
    4. С помощью маркера заполнения, уже привычным способом копируем выражение оператора ЕСЛИ на весь столбец. Как видим, по двум позициям, которые присутствуют во второй таблице, но отсутствуют в первой, формула выдает номера строк.
    5. Отступаем от табличной области вправо и заполняем колонку номерами по порядку, начиная от 1 . Количество номеров должно совпадать с количеством строк во второй сравниваемой таблице. Чтобы ускорить процедуру нумерации, можно также воспользоваться маркером заполнения.
    6. После этого выделяем первую ячейку справа от колонки с номерами и щелкаем по значку «Вставить функцию» .
    7. Открывается Мастер функций . Переходим в категорию «Статистические» и производим выбор наименования «НАИМЕНЬШИЙ» . Щелкаем по кнопке «OK» .
    8. Функция НАИМЕНЬШИЙ , окно аргументов которой было раскрыто, предназначена для вывода указанного по счету наименьшего значения.

      В поле «Массив» следует указать координаты диапазона дополнительного столбца «Количество совпадений» , который мы ранее преобразовали с помощью функции ЕСЛИ . Делаем все ссылки абсолютными.

      В поле «K» указывается, какое по счету наименьшее значение нужно вывести. Тут указываем координаты первой ячейки столбца с нумерацией, который мы недавно добавили. Адрес оставляем относительным. Щелкаем по кнопке «OK» .

    9. Оператор выводит результат – число 3 . Именно оно наименьшее из нумерации несовпадающих строк табличных массивов. С помощью маркера заполнения копируем формулу до самого низа.
    10. Теперь, зная номера строк несовпадающих элементов, мы можем вставить в ячейку и их значения с помощью функции ИНДЕКС . Выделяем первый элемент листа, содержащий формулу НАИМЕНЬШИЙ . После этого переходим в строку формул и перед наименованием «НАИМЕНЬШИЙ» дописываем название «ИНДЕКС» без кавычек, тут же открываем скобку и ставим точку с запятой (; ). Затем выделяем в строке формул наименование «ИНДЕКС» и кликаем по пиктограмме «Вставить функцию» .
    11. После этого открывается небольшое окошко, в котором нужно определить, ссылочный вид должна иметь функция ИНДЕКС или предназначенный для работы с массивами. Нам нужен второй вариант. Он установлен по умолчанию, так что в данном окошке просто щелкаем по кнопке «OK» .
    12. Запускается окно аргументов функции ИНДЕКС . Данный оператор предназначен для вывода значения, которое расположено в определенном массиве в указанной строке.

      Как видим, поле «Номер строки» уже заполнено значениями функции НАИМЕНЬШИЙ . От уже существующего там значения следует отнять разность между нумерацией листа Excel и внутренней нумерацией табличной области. Как видим, над табличными значениями у нас только шапка. Это значит, что разница составляет одну строку. Поэтому дописываем в поле «Номер строки» значение «-1» без кавычек.

      В поле «Массив» указываем адрес диапазона значений второй таблицы. При этом все координаты делаем абсолютными, то есть, ставим перед ними знак доллара уже ранее описанным нами способом.

      Жмем на кнопку «OK» .

    13. После вывода результат на экран протягиваем функцию с помощью маркера заполнения до конца столбца вниз. Как видим, обе фамилии, которые присутствуют во второй таблице, но отсутствуют в первой, выведены в отдельный диапазон.

    Способ 5: сравнение массивов в разных книгах

    При сравнении диапазонов в разных книгах можно использовать перечисленные выше способы, исключая те варианты, где требуется размещение обоих табличных областей на одном листе. Главное условие для проведения процедуры сравнения в этом случае – это открытие окон обоих файлов одновременно. Для версий Excel 2013 и позже, а также для версий до Excel 2007 с выполнением этого условия нет никаких проблем. Но в Excel 2007 и Excel 2010 для того, чтобы открыть оба окна одновременно, требуется провести дополнительные манипуляции. Как это сделать рассказывается в отдельном уроке.

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

    После установки надстройки у вас появится новая вкладка с командой вызова функции. При нажатии на команду Сравнение диапазонов появляется диалоговое окно для ввода параметров.

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

    Диалоговое окно поделено на две части: левая для первой таблицы и правая для второй.

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

    • Указать диапазоны таблиц.
    • Установить чекбокс (галку/птичку) под выбранным диапазоном таблиц в том случае если таблица включает в себя шапку (строку заголовка).
    • Выбрать столбцы левой и правой таблицы, по которым будет вестись сравнение (в случае, если диапазоны таблиц не включают заголовки столбцы будут пронумерованы).
    • Указать тип сравнения.
    • Выбрать вариант выдачи результатов.

    Тип сравнения таблиц

    Программа позволяет выбрать несколько типов сравнения таблиц:

    Найти строки одной таблицы, которые отсутствуют в другой таблице

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

    Найти совпадающие строки

    При выборе данного типа сравнения, программа находит строки, которые совпадают в первой и второй таблицах. Совпадающими считаются строки, в которых значения в выбранных столбцах сравнения (1, 2, 3) одной таблицы полностью совпадают со значениями столбцов второй таблицы.

    Пример работы программы в данном режиме представлен справа на картинке.

    Сопоставить таблицы на основе выбранной

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

    Сравнение таблиц по четырем и более столбцам

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

    • Создайте в таблицах по пустому столбцу.
    • В новых столбцах используя формулу =СЦЕПИТЬ объедините столбцы, ко которым хотите провести сравнение.

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