Скрипт для excel сравнение таблиц

Перейти к основному содержанию

Статья даёт ответы на следующие вопросы:

  • Как сравнить две таблицы в Excel с помощью макросов VBA?
  • Как обращаться к ячейкам таблицы Excel с помощью VBA?
  • Как осуществлять перебор ячеек таблицы в цикле с помощью VBA?

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

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

Проиллюстрируем задачу картинкой из первой статьи.

задача сравнения двух таблиц в Excel

Для начала напишем алгоритм наших действий по сравнению таблиц.

  1. Определим диапазоны данных первой и второй таблицы, то есть найдем последние значимые строки и сохраним их номера в переменных (последняя строка таблицы 1 — last_i и последняя строка таблицы 2 — last_j).
  2. Начнем проходить по каждой строке таблицы 2 (внешний цикл), данные из которой нужно перенести в таблицу 1. С первой строки данных (в примере это строка 3) до последней строки таблицы 2.
  3. Для каждой строки таблицы 2 определим идентификатор строки, путем формирования строки, содержащей полный адрес квартиры (значения из нескольких колонок, разделенные дефисами).
  4. Начнем проходить по каждой строке таблицы 1 (внутренний цикл) с первой строки данных (в примере это строка 3) до последней строки таблицы 1, определяя при этом идентификатор строки.
  5. Сравним значения идентификаторов строк таблицы 1 и таблицы 2.
  6. Если идентификаторы равны, перепишем ФИО покупателя из ячейки таблицы 2 в соответствующую ячейку таблицы 1; прервем внутренний цикл по таблице 1 и перейдем к следующей строке таблицы 2 (переход к п.2).

Теперь остается реализовать алгоритм в виде программного кода макроса.

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

В появившемся диалоге выделим наш макрос и нажмем Изменить.

На экране откроется окно редактора макросов Visual Basic for Applications. В области кода (правая верхняя область) отображается код только что созданного пустого макроса.

Редактор макросов Visual Basic For Applications

В процедуру Макрос1 (между объявлениями начала и конца процедуры: Sub и End Sub) необходимо вставить код, решающий поставленную задачу.
Образец кода представлен ниже.

Sub Макрос1()
'
' Макрос1 сравнение двух таблиц с использованием макроса VBA
'

' ссылка на первый лист книги
Dim sheet1 As Worksheet
Set sheet1 = ActiveWorkbook.Sheets(1)
' ссылка на второй лист книги
Dim sheet2 As Worksheet
Set sheet2 = ActiveWorkbook.Sheets(2)

' строка для хранения идентификатора строки первой таблицы
Dim str1 As String
' строка для хранения идентификатора строки второй таблицы
Dim str2 As String

' позиция курсора (номер строки) в первой таблице
Dim i As Integer
i = 3
Dim last_i As Integer
last_i = 3
' позиция курсора (номер строки) во второй таблице
Dim j As Integer
j = 3
Dim last_j As Integer
last_j = 3

' определяем последнюю значимую строку первой таблицы (последняя строка, в первой колонке которой есть значение)
For Each Cell In sheet1.Range("A:A")
    If Cell.Row > 2 Then
        If Cell.Value > "" Then
            last_i = Cell.Row
        Else
            Exit For
        End If
    End If
Next Cell

' определяем последнюю значимую строку второй таблицы (последняя строка, в первой колонке которой есть значение)
For Each Cell In sheet2.Range("A:A")
    If Cell.Row > 2 Then
        If Cell.Value > "" Then
            last_j = Cell.Row
        Else
            Exit For
        End If
    End If
Next Cell

' пробегаем по строкам второй таблицы (внешний цикл)
For j = 3 To last_j
    ' определяем идентификатор текущей строки
    str2 = sheet2.Cells(j, 1).Value & "-" & sheet2.Cells(j, 2).Value & "-" & sheet2.Cells(j, 3).Value & "-" & sheet2.Cells(j, 4).Value
    ' пробегаем по строкам первой таблицы (внутренний цикл)
    For i = 3 To last_i
        ' определяем идентификатор текущей строки
        str1 = sheet1.Cells(i, 1).Value & "-" & sheet1.Cells(i, 2).Value & "-" & sheet1.Cells(i, 3).Value & "-" & sheet1.Cells(i, 4).Value
        ' сравниваем идентификаторы строк первой и второй таблицы
        If str2 = str1 Then
            ' если совпадение найдено, то записываем покупателя из второй таблицы в первую в строку с соответствующей ему квартирой
            sheet1.Cells(i, 5).Value = sheet2.Cells(j, 5).Value
            ' прекращаем внутренний цикл, переходим к следующей итерации внешнего цикла
            ' (к следующей записи второй таблицы)
            Exit For
        End If
    Next i
Next j

End Sub

Результат решения задачи:
результат сравнения таблиц в Excel

Другие интересные статьи

  • Как сравнить две таблицы в Excel с использованием формул?
  • Горячие клавиши Excel

Тэги: 

  • Статьи
  • Excel
  • сравнение таблиц
  • VBA
  • макросы

Skip to content

9 способов сравнить две таблицы в Excel и найти разницу

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

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

  • Визуальное сравнение таблиц.
  • Быстрое выделение различий.
  • Использование формулы сравнения.
  • Как вывести различия на отдельном листе.
  • Как можно использовать функцию ВПР.
  • Выделение различий условным форматированием.
  • Сопоставление при помощи сводной таблицы.
  • Сравнение таблиц при помощи Pover Query.
  • Инструмент сравнения таблиц Ultimate Suite.

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

Просмотр рядом, чтобы сравнить таблицы.

Если у вас относительно небольшие файлы и вы внимательны к деталям, этот быстрый и простой способ сравнения может вам подойти. Я говорю о режиме «Просмотр рядом», который позволяет расположить два окна Excel рядом. Вы можете использовать этот метод для визуального сравнения двух таблиц или двух листов из одной книги.

Сравните 2 книги.

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

Чтобы просмотреть два файла Эксель рядом, сделайте следующее:

  1. Откройте оба файла.
  2. Перейдите на вкладку «Вид» и нажмите кнопку «Рядом». (1) Это оно!

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

Чтобы разделить окна по вертикали, нажмите кнопку «Упорядочить все» (3) и выберите «Рядом» (4):

В результате два отдельных окна будут расположены, как на скриншоте.

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

Расположите рядом несколько таблиц Excel.

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

Появится диалоговое окно «Сравнить рядом», в котором вы выберете файлы, которые будут отображаться вместе с активной книгой.

Чтобы просмотреть все открытые файлы одновременно, нажмите кнопку «Упорядочить все» и выберите предпочтительное расположение: мозаичное, горизонтальное, вертикальное или каскадное.

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

Сравните два листа в одной книге.

Иногда 2 листа, которые вы хотите сравнить, находятся в одной книге. Чтобы просмотреть их рядом, выполните следующие действия.

  1. Откройте файл, перейдите на вкладку «Вид» и нажмите кнопку «Новое окно».

  1. Это действие откроет тот же файл в дополнительном окне.
  2. Включите режим просмотра «Рядом», нажав соответствующую кнопку на ленте.
  3. Выберите лист 1 в первом окне и лист 2 во втором окне.

Быстрое выделение значений, которые различаются.

Это также не очень обременительный способ. Если вам просто нужно найти и удостовериться в наличии или же отсутствии отличий между записями, вам нужно на вкладке «Главная», выбрать кнопку «Найти и выделить», предварительно выделив диапазон, где надо сравнить данные в Эксель.

В открывшемся меню выберите пункт «Выделить группу ячеек…» и в появившемся диалоговом окне выберите «отличия по строкам».

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

Формула сравнения.

Это самый простой способ соотнесения таблиц в Excel, который позволяет идентифицировать в них ячейки с разными значениями. 

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

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

=G3=C3

Результатом будет являться либо ИСТИНА (в случае совпадения), либо ЛОЖЬ (при отрицательном результате).

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

=G3=Лист2!C3

Если ваши таблицы достаточно велики, то довольно утомительно будет просматривать колонку I на предмет поиска слова ЛОЖЬ. Поэтому может быть полезным сразу определить — а есть ли вообще несовпадения?

Можно подсчитать общее количество расхождений и сразу вывести это число где-нибудь отдельно.

=СУММПРОИЗВ(—(C3:C25<>G3:G25))

или можно сделать это формулой массива

{=СУММ(—(C3:C25<>G3:G25))}

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

Как произвести сравнение на отдельном листе.

Чтобы сравнить два листа Эксель на предмет различий, просто откройте новый пустой лист, введите следующую формулу в ячейку A1, а затем скопируйте ее вниз и вправо, перетащив маркер заполнения:

=ЕСЛИ(Лист1!A1 <> Лист2!A1; «Лист1:»&Лист1!A1&» — Лист2:»&Лист2!A1; «»)

Поскольку мы используем относительные ссылки на ячейки, формула будет меняться в зависимости от расположения столбца и строки. В результате формула в A1 будет сравнивать ячейки A1 в Лист1 и Лист2, формула в B1 будет сравнивать ячейку B1 на обоих листах и ​​так далее. Результат будет выглядеть примерно так:

В результате вы получите отчет о различиях на новом листе. Думаю, это достаточно информативно.

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

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

Как сравнить две таблицы при помощи формулы ВПР.

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

Нам необходимо последовательно взять каждый товар из одной таблицы, найти его во второй, извлечь оттуда его цену и сравнить с первоначальной ценой. Здесь нам не обойтись без формул поиска. Поможет нам функция ВПР.

Для наглядности расположим обе таблицы на одном листе.

Формула

=ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0)

берёт наименование товара из второго прайса, ищет его в первом, и в случае удачи извлекает соответствующую цену из первой таблицы. Она будет записана рядом с новой ценой в столбце H. Если поиск завершился неудачей, то есть такого товара ранее не было, то ставим 0. Таким образом, старая и новая цена оказываются рядом, и их легко сравнить простейшей операцией вычитания. Что и сделано в столбце I.

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

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

Разберём действия пошагово. Формула в ячейке J3 ищет наименование товара из первой позиции второй таблицы внутри первой. Если таковое найдено, извлекается соответствующая этому товару старая цена и сразу же сравнивается с новой. Если они одинаковы, то в ячейку записывается пустота «». 

=ЕСЛИ(ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0)=G3;»»;ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0))

Таким образом, в ячейке J3 будет указана старая цена, если ее удастся найти, а также если она не равна новой.

Далее если ячейка J3 не пустая, то в I3 будет указано наименование товара —  

=ЕСЛИ(J3<>»»;F3;»»)

а в K3 – его новая цена:  

=ЕСЛИ(J3<>»»;G3;»»)

Ну а далее в L3 просто найдем разность K3-J3.

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

И еще один пример, который может быть полезен. Попытаемся сравнить в итоговой таблице оба прайс-листа с эталонным общим списком товаров.

В ячейке B2 запишем формулу

=ЕСЛИ(ЕНД(ВПР(A2;Прайс1!$B$3:$B$19;1;0));»Нет»;ВПР(A2;Прайс1!$B$3:$C$19;2;0))

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

Для каждой цены из первого прайса проверяем, совпадает ли она с новыми данными  —

=ЕСЛИ(ЕНД(ВПР(A2;Прайс2!$B$3:$B$22;1;0));»Нет»;ВПР(A2;Прайс2!$B$3:$C$22;2;0))

Эталонный список находится у нас в столбце A. В результате мы получили своего рода сводную таблицу цен – старых и новых.

Еще несколько примеров использования функции ВПР для сравнения таблиц вы можете найти в этой статье.

Выделение различий между таблицами цветом.

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

  • На листе, где вы хотите выделить различия, выберите все используемые ячейки. Для этого щелкните верхнюю левую ячейку используемого диапазона, обычно A1, и нажмите Ctrl + Shift + End, чтобы расширить выделение до последней использованной ячейки.
  • На вкладке Главная кликните Условное форматирование > Новое правило и создайте его со следующей формулой:

=A1<>Лист2!A1

Где Лист2 — это имя другого листа, который вы сравниваете с текущим.

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

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

Сравнение при помощи сводной таблицы.

Хороший вариант сравнения — объединить таблицы в единую сводную, и там уже сопоставлять данные между собой.

Вернемся к нашему примеру с двумя прайс-листами. Объединим наши данные на одном листе. Чтобы отличить данные одной таблицы от другой, добавим вспомогательный столбец D и укажем в нем, откуда именно взяты данные:

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

Поместим поле Товар в область строк, поле Прайс в область столбцов и поле Цена в область значений.

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

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

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

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

Плюсы: такой подход на порядок быстрее работает с большими объемами данных, чем ВПР. Можно сравнить данные нескольких таблиц.

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

Сравнение таблиц с помощью Power Query

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

Перед загрузкой наших прайс-листов в Power Query их необходимо преобразовать сначала в умные таблицы. Для этого выделим диапазон с данными и нажмем на клавиатуре сочетание Ctrl+T или выберем на ленте вкладку Главная — Форматировать как таблицу. Имена созданных таблиц можно изменить на вкладке Конструктор (я оставлю стандартные Таблица1 и Таблица2, которые генерируются по умолчанию).

Загрузите первый прайс в Power Query с помощью кнопки Из таблицы/диапазона на вкладке Данные.

После загрузки вернемся обратно в Excel из Power Query командой Закрыть и загрузить — Закрыть и загрузить в…

В появившемся затем окне выбираем «Только создать подключение».

Повторите те же действия с новым прайс-листом.

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

В окне объединения выберем в выпадающих списках наши таблицы, выделим в них столбцы с названиями товаров и в нижней части определим способ объединения — Полное внешнее.

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

После нажатия вы увидите список столбцов из второго прайса. Выбираем Товар и Цена. Получаем следующую картину:

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

Теперь осталось вернуться на вкладку Главная и нажать Закрыть и загрузить.

Получаем новый лист в нашей рабочей книге:

Примечание. Если в будущем в наших прайс-листах произойдут любые изменения (добавятся или удалятся строки, изменятся цены и т.д.), то достаточно будет лишь обновить наши запросы сочетанием клавиш Ctrl+Alt+F5 или кнопкой Обновить все на вкладке Данные.

Ведь все данные извлекаются из «умных» таблиц Excel, которые автоматически меняют свой размер при добавлении либо удалении из них какой-либо информации. Однако, помните, что имена столбцов в исходных таблицах не должны меняться, иначе получим ошибку «Столбец такой-то не найден!» при попытке обновить запрос.

Это, пожалуй, самый красивый и удобный способ из всех стандартных. Шустро работает с большими таблицами. Не требует ручных правок при изменении размеров.

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

  • Они находят различия только в значениях, но не могут сравнивать формулы или форматирование ячеек.
  • Многие из них не могут идентифицировать добавленные или удаленные строки и столбцы. Как только вы добавите или удалите строку / столбец на одном листе, все последующие строки / столбцы будут отмечены как отличия.
  • Они хорошо работают на уровне листа, но не могут обнаруживать структурные различия на уровне книги Excel, к примеру добавление и удаление листов.

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

Как сравнить таблицы при помощи Ultimat Suite для Excel

Последняя версия Ultimate Suite включает более 60 новых функций и улучшений, самым интересным из которых является «Сравнение таблиц» — инструмент для сравнения листов или диапазонов данных в Excel.

Чтобы сделать сравнение более интуитивным и удобным, надстройка разработана следующим образом:

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

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

  1. Нажмите кнопку «Сравнить листы (Compare Two Sheets)» на вкладке «Данные Ablebits » в группе « Объединить »:

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

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

  1. На следующем шаге вы выбираете алгоритм сравнения:
    • Без ключевых столбцов (по умолчанию) — лучше всего подходит для сложных документов, таких как счета-фактуры или контракты.
    • По ключевым столбцам — подходит для таблиц, организованных по столбцам, которые имеют один или несколько уникальных идентификаторов, таких как номера заказов или артикулы товаров.
    • По ячейке — лучше всего использовать для сравнения таблиц с одинаковым макетом и размером, таких как балансы или статистические отчеты.

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

На этом же шаге вы можете выбрать предпочтительный тип соответствия:

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

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

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

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

  1. Нажмите кнопку «Сравнить (Compare)» и подождите немного, пока программа обработает ваши данные и создаст их резервные копии. Резервные копии всегда создаются автоматически, поэтому вы можете не беспокоиться о сохранности своих данных.

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

На скриншоте выше различия выделены цветами по умолчанию:

  • Красные строки — строки, существующие только на Листе 2 (справа).
  • Зеленые ячейки — различные ячейки в частично совпадающих строках.

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

После этого мы видим немного другой результат сравнения:

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

Не знаю как вам, но мне второй вариант представляется более информативным.

А что же дальше делать с этим сравнением?

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

Используя её, вы последовательно просматриваете найденные различия и решаете, объединить их или игнорировать:

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

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

  • Сохраните внесенные вами изменения и сохраните оставшиеся различия (Save workbooks and keep difference marks),
  • Сохраните внесенные вами изменения и удалите оставшиеся различия (Save workbooks and remove difference marks),
  • Восстановите исходные книги из резервных копий (Restore workbooks from backup copies).

Вот как вы можете сравнить два листа в Excel при помощи инструмента сравнения Compare Two Sheets (надеюсь, он вам понравился :)

Если вам интересно попробовать, полнофункциональная ознакомительная версия доступна для загрузки здесь .

Сравнение двух таблиц

Имеем две таблицы (например, старая и новая версия прайс-листа), которые надо сравнить и оперативно найти отличия:

Поиск отличий в двух таблицах в Excel

С ходу видно, что в новом прайсе что-то добавилось (финики, чеснок…), что-то пропало (ежевика, малина…), у каких-то товаров изменилась цена (инжир, дыня…). Нужно быстро найти и вывести все эти изменения.

Для любой задачи в Excel почти всегда есть больше одного решения (обычно 4-5). Для нашей проблемы можно использовать много разных подходов:

  • функцию ВПР (VLOOKUP) — искать названия товаров из нового прайс-листа в старом и выводить старую цену рядом с новой, а потом ловить отличия
  • объединить два списка в один и построить по нему потом сводную таблицу, где наглядно будут видны отличия
  • использовать надстройку Power Query для Excel

Давайте разберем их все последовательно.

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

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

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

Поиск отличий с ВПР

Те товары, напротив которых получилась ошибка #Н/Д — отсутствуют в старом списке, т.е. были добавлены. Изменения цены также хорошо видны.

Плюсы этого способа: просто и понятно, «классика жанра», что называется. Работает в любой версии Excel.

Минусы тоже есть. Для поиска добавленных в новый прайс товаров придется делать такую же процедуру в обратную сторону, т.е. подтягивать с помощью ВПР новые цены к старому прайсу. Если размеры таблиц завтра поменяются, то придется корректировать формулы. Ну, и на действительно больших таблицах (>100 тыс. строк) все это счастье будет прилично тормозить.

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

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

Объединяем таблицы

Теперь на основе созданной таблицы создадим сводную через Вставка — Сводная таблица (Insert — Pivot Table). Закинем поле Товар в область строк, поле Прайс в область столбцов и поле Цена в область значений:

Сводная

Как видите, сводная таблица автоматически сформирует общий список всех товаров из старого и нового прайс-листов (без повторений!) и отсортирует продукты по алфавиту. Хорошо видно добавленные товары (у них нет старой цены), удаленные товары (у них нет новой цены) и изменения цен, если были.

Общие итоги в такой таблице смысла не имеют, и их можно отключить на вкладке Конструктор — Общие итоги — Отключить для строк и столбцов (Design — Grand Totals).

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

Плюсы: такой подход на порядок быстрее работает с большими таблицами, чем ВПР. 

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

Способ 3. Сравнение таблиц с помощью Power Query

Power Query — это бесплатная надстройка для Microsoft Excel, позволяющая загружать в Excel данные практически из любых источников и трансформировать потом эти данные любым желаемым образом. В Excel 2016 эта надстройка уже встроена по умолчанию на вкладке Данные (Data), а для Excel 2010-2013 ее нужно отдельно скачать с сайта Microsoft и установить — получите новую вкладку Power Query.

Перед загрузкой наших прайс-листов в Power Query их необходимо преобразовать сначала в умные таблицы. Для этого выделим диапазон с данными и нажмем на клавиатуре сочетание Ctrl+T или выберем на ленте вкладку Главная — Форматировать как таблицу (Home — Format as Table). Имена созданных таблиц можно подкорректировать на вкладке Конструктор (я оставлю стандартные Таблица1 и Таблица2, которые получаются по-умолчанию).

Загрузите старый прайс в Power Query с помощью кнопки Из таблицы/диапазона (From Table/Range) с вкладки Данные (Data) или с вкладки Power Query (в зависимости от версии Excel). После загрузки вернемся обратно в Excel из Power Query командой Закрыть и загрузить — Закрыть и загрузить в… (Close & Load — Close & Load To…):

Закрыть и загрузить

… и в появившемся затем окне выбрем Только создать подключение (Connection Only).

Повторите то же самое с новым прайс-листом. 

Теперь создадим третий запрос, который будет объединять и сравнивать данных из предыдущих двух. Для этого выберем в Excel на вкладке Данные — Получить данные — Объединить запросы — Объединить (Data — Get Data — Merge Queries — Merge) или нажмем кнопку Объединить (Merge) на вкладке Power Query.

В окне объединения выберем в выпадающих списках наши таблицы, выделим в них столбцы с названиями товаров и в нижней части зададим способ объединения — Полное внешнее (Full Outer):

Слияние запросов

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

Разворачиваем столбцы

В итоге получим слияние данных из обеих таблиц:

Объединение таблиц

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

Переименованные столбцы

А теперь самое интересное. Идем на вкладку Добавить столбец (Add Column) и жмем на кнопку Условный столбец (Conditional Column). А затем в открывшемся окне вводим несколько условий проверки с соответствующими им значениями на выходе:

Условный столбец

Останется нажать на ОК и выгрузить получившийся отчет в Excel с помощью все той же кнопки Закрыть и загрузить (Close & Load) на вкладке Главная (Home):

Результат сравнения

Красота.

Причем, если в будущем в прайс-листах произойдут любые изменения (добавятся или удалятся строки, изменятся цены и т.д.), то достаточно будет лишь обновить наши запросы сочетанием клавиш Ctrl+Alt+F5 или кнопкой Обновить все (Refresh All) на вкладке Данные (Data).

Плюсы: Пожалуй, самый красивый и удобный способ из всех. Шустро работает с большими таблицами. Не требует ручных правок при изменении размеров таблиц.

Минусы: Требует установленной надстройки Power Query (в Excel 2010-2013) или Excel 2016. Имена столбцов в исходных данных не должны меняться, иначе получим ошибку «Столбец такой-то не найден!» при попытке обновить запрос.

Ссылки по теме

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

Всем привет! В сегодняшнем нашем уроке мы рассмотрим все возможные варианты сравнить две таблицы на совпадения. Мы будем работать в нашем любимом Excel. Мы рассмотрим, как сравнение таблиц, так и столбцов. Будем использовать сложные формулы, а также простые методы для небольшого количества данных. Урок будет сложным, но интересным. Я постарался описать все максимально подробно. Если у вас возникнут дополнительные вопросы или дополнения – пишите в комментариях.

Содержание

  1. Способ 1: Логическое сравнение
  2. Способ 2: Функция
  3. Способ 3: Работа с несколькими столбцами
  4. Способ 4: Форматирование по условию
  5. Способ 5: Совпадения и отличия
  6. Способ 6: Сложные формулы
  7. Задать вопрос автору статьи

Способ 1: Логическое сравнение

Cравнить две таблицы в Excel на совпадения

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

Как только таблицы уже будут одинаковые по основному столбцу, тогда уже приступаем к сравнению:

  1. Представим себе, что у нас есть таблицы, и нам нужно сравнить какие-то два столбца. Выделяем свободную ячейку, параллельную этим строкам. Далее начинаем вводить формулу вычисления, начав со знака равно (=). Теперь с помощью левой кнопкой мыши выделяем одну ячейку первой таблицы, ставим знак равно (=) для сравнения, а потом выделяем аналогичную параллельную ячейку второй таблички.
  2. Чтобы применить вычисления, просто кликните в любое место или нажмите по клавише:

Enter

Сравнить два столбца в Excel на совпадения: полный урок

  1. Отлично! Из примера ниже мы видим, что первая строчка, первого столбца обеих таблиц совпадает, и мы видим значение:

ИСТИНА

  1. Теперь нам нужно применить эту же формулу сравнения и для других ячеек. Для этого воспользуемся маркером автозаполнения – наведите на данную ячейку, зажмите левой кнопкой мыши (ЛКМ) по квадратику и тяните его до конца таблицы или до того места, где вы хотите закончить сравнение.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Ради интереса посмотрите какие формулы применили в других ячейках. Маркер автоматически сдвинул адреса ячеек для правильного подсчета.

СОВЕТ! Я вам настоятельно рекомендую изучить урок – про маркер автозаполнения. Это один из самых важных уроков, и его должен знать каждый, кто работает с Excel.

Сравнить два столбца в Excel на совпадения: полный урок

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

=А2=Лист1!А2

Сравнить два столбца в Excel на совпадения: полный урок

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

Способ 2: Функция

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

  1. Установите курсор в любую ячейку, в которой будет отображаться результат.

ПРИМЕЧАНИЕ! По поводу результата – мы будем выводить количество несовпадений.

  1. Далее нажмите по кнопке вставки функции, которая находится рядом с адресной строкой.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Находим функцию СУММПРОИЗВ, она находится в «Математической» категории.

Сравнить два столбца в Excel на совпадения: полный урок

  1. А теперь давайте разберем по шагам, что нам нужно делать. Выделяем строчку «Массив1».
  2. Ставим два знака минус (), открываем скобку и выделяем столбец первой части таблицы.
  3. Ставим знак неравенства (<>)
  4. Теперь точно также выделяем вторую часть таблицы и закрываем скобку. Ориентируйтесь на скриншот ниже.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Теперь мы увидим число, которое отображает количество несовпадений. Если оба столбца будут точно совпадать друг с другом, то вы увидите ноль (0).

Сравнить два столбца в Excel на совпадения: полный урок

Способ 3: Работа с несколькими столбцами

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

  1. Выделяем две таблицы – они должны быть одинакового размера.
  2. Переходим на вкладку «Главная».

Сравнить два столбца в Excel на совпадения: полный урок

  1. В правом верхнем углу в разделе «Редактирование» кликните по кнопке «Найти и выделить» – «Выделить группу ячеек».

Сравнить два столбца в Excel на совпадения: полный урок

  1. Выделяем настройку «Отличия по строкам» и жмем «ОК».

Сравнить два столбца в Excel на совпадения: полный урок

  1. Теперь вы увидите, как выделятся только те ячейки, которые отличаются друг от друга.

Сравнить два столбца в Excel на совпадения: полный урок

Способ 4: Форматирование по условию

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

  1. Выделите данные второй таблицы.

Сравнить два столбца в Excel на совпадения: полный урок

  1. На «Главной» в разделе «Стили» кликаем ЛКМ по кнопке «Условное форматирование» – «Управление правилами…».

Сравнить два столбца в Excel на совпадения: полный урок

  1. Создаем правило!

Сравнить два столбца в Excel на совпадения: полный урок

  1. Выбираем правило «Использовать формулу для определения форматируемых ячеек».
  2. Теперь нам нужно указать формулу. Начинаем со знака равно (=). Далее выделяем сначала первую ячейку первой таблицы. Смотрите, чтобы по столбцам адрес был абсолютным, а вот строки менялись. Далее ставим знак неравенства (<>) и указываем ячейку второй таблицы. Пример:

=$A2<>$D2

Сравнить два столбца в Excel на совпадения: полный урок

  1. Если у вас таблица находится на другом листе, то формула будет примерно аналогичная, только не забудьте указать адрес листа:

=$A2<>Лист1!$A2

Сравнить два столбца в Excel на совпадения: полный урок

  1. Теперь наша задача как-то выделить и подкрасить эти ячейки – кликните по кнопке «Формат…». На вкладке «Заливка» выделите яркий цвет, отличающийся от фонового. Можно выбрать красный, голубой или желтый. Жмем «ОК».

Сравнить два столбца в Excel на совпадения: полный урок

  1. Применяем настройки, еще раз два раза нажав «ОК».

Сравнить два столбца в Excel на совпадения: полный урок

Сравнить два столбца в Excel на совпадения: полный урок

  1. Как видите ячейки теперь подкрашены другим цветом.

Сравнить два столбца в Excel на совпадения: полный урок

Способ 5: Совпадения и отличия

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

  1. Выделите область из двух таблиц.

Сравнить два столбца в Excel на совпадения: полный урок

  1. «Условное форматирование» – «Правила выделения ячеек» – «Повторяющиеся значения…».

Сравнить два столбца в Excel на совпадения: полный урок

  1. Слева в блоке поставьте настройку «Повторяющиеся» и нажмите «ОК».

Сравнить два столбца в Excel на совпадения: полный урок

  1. Далее вы увидите, что все одинаковые ячейки будут подкрашены.

Сравнить два столбца в Excel на совпадения: полный урок

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

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

СЧЁТЕСЛИ

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

СЧЁТЕСЛИ(массив;условие)

  • Массив – это диапазон ячеек, где мы производим подсчет.
  • Условие – это условие по которому мы производим подсчет выделенных ячеек.

Если вам пока ничего не понятно, ничего страшного, сейчас мы постараемся все разобрать на конкретном примере.

ПРИМЕЧАНИЕ! Я буду показывать на примере двух таблиц, расположенных на одном листе, вы же можете использовать несколько листов. Вы уже знаете, как использовать адрес в таком случае.

  1. Можете создать отдельный столбец, куда мы будем выводить результаты сравнения.
  2. Ставим курсор в ячейку и вставляем формулу.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Находим СЧЁТЕСЛИ – формула находится в «Статической» категории.

Сравнить два столбца в Excel на совпадения: полный урок

  1. А теперь очень внимательно действуем по шагам. Сначала ставим курсор в строку «Диапазон».
  2. Выделяем диапазон второй таблицы. ОЧЕНЬ ВАЖНО, чтобы все адреса были абсолютными – то есть перед адресом строки и столбца стоял знак доллар ($). Чтобы быстрее это сделать и не вводить вручную, выделите строчку и нажмите по клавише:

F4

  1. Выделяем «Критерий».
  2. Выделяем первую ячейку первой таблицы.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Ставим «ОК».

Сравнить два столбца в Excel на совпадения: полный урок

  1. Копируем формулу с помощью маркера автозаполнения.

Сравнить два столбца в Excel на совпадения: полный урок

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

Сравнить два столбца в Excel на совпадения: полный урок

  1. Установите курсор в первую ячейку и допишите после знака равно (=) формулу:

ЕСЛИ()

  1. Не забудьте закрыть кавычки, а потом сразу же нажмите по знаку «Функции», чтобы открыть настройки.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Должны открыться «Аргументы функции» ЕСЛИ. Если открылось не то окошко – два раза кликните левой кнопкой мыши по надписи «ЕСЛИ» в строке адреса. Далее в первой строке (Лог_выражение) дописываем в самом конце:

=0

  1. Во второй строке используем формулу СТРОКА и выделяем первую ячейку второй таблички.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Вы увидите значение «ЛОЖЬ», если обе строчки одинаковые.

Сравнить два столбца в Excel на совпадения: полный урок

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

Сравнить два столбца в Excel на совпадения: полный урок

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

Сравнить два столбца в Excel на совпадения: полный урок

  1. Ставим курсор на первую строчку соседнего пустого столбца.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Вставляем формулу:

НАИМЕНЬШИЙ()

Сравнить два столбца в Excel на совпадения: полный урок

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

Сравнить два столбца в Excel на совпадения: полный урок

  1. Копируем формулу.

Сравнить два столбца в Excel на совпадения: полный урок

  1. Теперь в этой строке добавляем:

ИНДЕКС()

  1. Заходим в настройки формулы.

Сравнить два столбца в Excel на совпадения: полный урок

  1. В окне ничего менять не нужно, оставляем настройку по умолчанию.

Сравнить два столбца в Excel на совпадения: полный урок

  1. В качестве первого массива указываем столбец второй таблицы и делаем адреса абсолютными. Можете воспользоваться клавишу F4, чтобы не вводить знак доллара ($) вручную.
  2. В «Номер строки» в конце ставим:

-1

Сравнить два столбца в Excel на совпадения: полный урок

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

Сравнить два столбца в Excel на совпадения: полный урок

На этом все, дорогие читатели. Урок получился достаточно длинным и моментами сложным, поэтому советую сохранить его в закладках, чтобы всегда обращаться к нему как к шпаргалке. До новых встреч на портале WiFiGiD.RU.

Содержание

  • Способы сравнения
    • Способ 1: простая формула
    • Способ 2: выделение групп ячеек
    • Способ 3: условное форматирование
    • Способ 4: комплексная формула
    • Способ 5: сравнение массивов в разных книгах
  • Вопросы и ответы

Сравнение в Microsoft Excel

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

Читайте также: Сравнение двух документов в MS Word

Способы сравнения

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

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

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

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

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

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

    Сравниваемые таблицы в Microsoft Excel

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

      =A2=D2

      Формула сравнения ячеек в Microsoft Excel

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

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

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

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

    5. Маркер заполнения в Microsoft Excel

    6. Как видим, теперь в дополнительном столбце отобразились все результаты сравнения данных в двух колонках табличных массивов. В нашем случае не совпали данные только в одной строке. При их сравнении формула выдала результат «ЛОЖЬ». По всем остальным строчкам, как видим, формула сравнения выдала показатель «ИСТИНА».
    7. Результат расчета по всему столбцу в Microsoft Excel

    8. Кроме того, существует возможность с помощью специальной формулы подсчитать количество несовпадений. Для этого выделяем тот элемент листа, куда оно будет выводиться. Затем щелкаем по значку «Вставить функцию».
    9. Переход в Мастер функций в Microsoft Excel

      Lumpics.ru

    10. В окне Мастера функций в группе операторов «Математические» выделяем наименование СУММПРОИЗВ. Щелкаем по кнопке «OK».
    11. Переход в окно аргументов функции СУММПРОИЗВ в Microsoft Excel

    12. Активируется окно аргументов функции СУММПРОИЗВ, главной задачей которой является вычисление суммы произведений выделенного диапазона. Но данную функцию можно использовать и для наших целей. Синтаксис у неё довольно простой:

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

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

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

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

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

    13. Окно аргументов функции СУММПРОИЗВ в Microsoft Excel

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

    Результат расчета функции СУММПРОИЗВ в Microsoft Excel

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

    =B2=Лист2!B2

    Сравнение таблиц на разных листах в Microsoft Excel

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

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

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

    1. Выделяем сравниваемые массивы. Переходим во вкладку «Главная». Далее щелкаем по значку «Найти и выделить», который располагается на ленте в блоке инструментов «Редактирование». Открывается список, в котором следует выбрать позицию «Выделение группы ячеек…».
      Переход в окно выделения группы ячеек в Microsoft Excel

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

    2. Активируется небольшое окошко перехода. Щелкаем по кнопке «Выделить…» в его нижнем левом углу.
    3. Окно перехода в Microsoft Excel

    4. После этого, какой бы из двух вышеперечисленных вариантов вы не избрали, запускается окно выделения групп ячеек. Устанавливаем переключатель в позицию «Выделить по строкам». Жмем по кнопке «OK».
    5. Окно выделения групп ячеек в Microsoft Excel

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

    Несовпавшие данные в Microsoft Excel

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

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

    1. Прежде всего, выбираем, какую табличную область будем считать основной, а в какой искать отличия. Последнее давайте будем делать во второй таблице. Поэтому выделяем список работников, находящийся в ней. Переместившись на вкладку «Главная», щелкаем по кнопке «Условное форматирование», которая имеет месторасположение на ленте в блоке «Стили». Из выпадающего списка переходим по пункту «Управление правилами».
    2. Переход в окно управления правилами условного форматирования в Microsoft Excel

    3. Активируется окошко диспетчера правил. Жмем в нем на кнопку «Создать правило».
    4. Диспетчер правил условного форматирования в Microsoft Excel

    5. В запустившемся окне производим выбор позиции «Использовать формулу». В поле «Форматировать ячейки» записываем формулу, содержащую адреса первых ячеек диапазонов сравниваемых столбцов, разделенные знаком «не равно» (<>). Только перед данным выражением на этот раз будет стоять знак «=». Кроме того, ко всем к координатам столбцов в данной формуле нужно применить абсолютную адресацию. Для этого выделяем формулу курсором и трижды жмем на клавишу F4. Как видим, около всех адресов столбцов появился знак доллара, что и означает превращение ссылок в абсолютные. Для нашего конкретного случая формула примет следующий вид:

      =$A2<>$D2

      Данное выражение мы и записываем в вышеуказанное поле. После этого щёлкаем по кнопке «Формат…».

    6. Переход в окно выбора формата в Microsoft Excel

    7. Активируется окно «Формат ячеек». Идем во вкладку «Заливка». Тут в перечне цветов останавливаем выбор на цвете, которым хотим окрашивать те элементы, где данные не будут совпадать. Жмем на кнопку «OK».
    8. Выбор цвета заливки в окне формат ячеек в Microsoft Excel

    9. Вернувшись в окно создания правила форматирования, жмем на кнопку «OK».
    10. Окно создания правила форматирования в Microsoft Excel

    11. После автоматического перемещения в окно «Диспетчера правил» щелкаем по кнопке «OK» и в нем.
    12. Применение правила в диспетчере правил в Microsoft Excel

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

    Несовпадающие данные отмечены с помощью условного форматирования в Microsoft Excel

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

    1. Производим выделение областей, которые нужно сравнить.
    2. Выделение сравниваемых таблиц в Microsoft Excel

    3. Выполняем переход во вкладку под названием «Главная». Делаем щелчок по кнопке «Условное форматирование». В активировавшемся списке выбираем позицию «Правила выделения ячеек». В следующем меню делаем выбор позиции «Повторяющиеся значения».
    4. Переход к условному форматированию в Microsoft Excel

    5. Запускается окно настройки выделения повторяющихся значений. Если вы все сделали правильно, то в данном окне остается только нажать на кнопку «OK». Хотя при желании в соответствующем поле данного окошка можно выбрать другой цвет выделения.
    6. Окно настройки выделения повторяющихся значений в Microsoft Excel

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

    Повторяющиеся значения выделены в Microsoft Excel

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

    Настройка выделения уникальных значений в Microsoft Excel

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

    Уникальные значения выделены в Microsoft Excel

    Урок: Условное форматирование в Экселе

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

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

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

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

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

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

    1. Выделяем первый элемент дополнительного столбца, в котором будет производиться подсчет количества совпадений. Далее щелкаем по пиктограмме «Вставить функцию».
    2. Переход в Мастер функций в программе Microsoft Excel

    3. Происходит запуск Мастера функций. Переходим в категорию «Статистические». Находим в перечне наименование «СЧЁТЕСЛИ». После его выделения щелкаем по кнопке «OK».
    4. Переход в окно аргументов функции СЧЁТЕСЛИ в Microsoft Excel

    5. Происходит запуск окна аргументов оператора СЧЁТЕСЛИ. Как видим, наименования полей в этом окне соответствуют названиям аргументов.

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

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

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

    6. Окно аргументов функции СЧЁТЕСЛИ в Microsoft Excel

    7. В элемент листа выводится результат. Он равен числу «1». Это означает, что в перечне имен второй таблицы фамилия «Гринев В. П.», которая является первой в списке первого табличного массива, встречается один раз.
    8. Результат вычислений функции СЧЁТЕСЛИ в Microsoft Excel

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

    11. Как видим, программа произвела вычисление совпадений, сравнив каждую ячейку первой таблицы с данными, которые расположены во втором табличном диапазоне. В четырех случаях результат вышел «1», а в двух случаях – «0». То есть, программа не смогла отыскать во второй таблице два значения, которые имеются в первом табличном массиве.

    Результат расчета столбца функцией СЧЁТЕСЛИ в Microsoft Excel

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

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

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

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

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

      СТРОКА(D2)

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

    4. Окно аргументов функции ЕСЛИ в Microsoft Excel

    5. Как видим, первый результат отображается, как «ЛОЖЬ». Это означает, что значение не удовлетворяет условиям оператора ЕСЛИ. То есть, первая фамилия присутствует в обоих списках.
    6. Значение ЛОЖЬ формулы ЕСЛИ в Microsoft Excel

    7. С помощью маркера заполнения, уже привычным способом копируем выражение оператора ЕСЛИ на весь столбец. Как видим, по двум позициям, которые присутствуют во второй таблице, но отсутствуют в первой, формула выдает номера строк.
    8. Номера строк в Microsoft Excel

    9. Отступаем от табличной области вправо и заполняем колонку номерами по порядку, начиная от 1. Количество номеров должно совпадать с количеством строк во второй сравниваемой таблице. Чтобы ускорить процедуру нумерации, можно также воспользоваться маркером заполнения.
    10. Нумерация строк в Microsoft Excel

    11. После этого выделяем первую ячейку справа от колонки с номерами и щелкаем по значку «Вставить функцию».
    12. Вставить функцию в Microsoft Excel

    13. Открывается Мастер функций. Переходим в категорию «Статистические» и производим выбор наименования «НАИМЕНЬШИЙ». Щелкаем по кнопке «OK».
    14. Переход в окно аргументов функции НАИМЕНЬШИЙ в Microsoft Excel

    15. Функция НАИМЕНЬШИЙ, окно аргументов которой было раскрыто, предназначена для вывода указанного по счету наименьшего значения.

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

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

    16. Окно аргументов функции НАИМЕНЬШИЙ в Microsoft Excel

    17. Оператор выводит результат – число 3. Именно оно наименьшее из нумерации несовпадающих строк табличных массивов. С помощью маркера заполнения копируем формулу до самого низа.
    18. Результат расчета функции НАИМЕНЬШИЙ в Microsoft Excel

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

    21. После этого открывается небольшое окошко, в котором нужно определить, ссылочный вид должна иметь функция ИНДЕКС или предназначенный для работы с массивами. Нам нужен второй вариант. Он установлен по умолчанию, так что в данном окошке просто щелкаем по кнопке «OK».
    22. Окошко выбора вида функции ИНДЕКС в Microsoft Excel

    23. Запускается окно аргументов функции ИНДЕКС. Данный оператор предназначен для вывода значения, которое расположено в определенном массиве в указанной строке.

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

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

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

    24. Окно аргументов функции ИНДЕКС в Microsoft Excel

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

    Фамилии выведены с помощью функции ИНДЕКС в Microsoft Excel

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

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

    Сравнение таблиц в двух книгах в Microsoft Excel

    Урок: Как открыть Эксель в разных окнах

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

    Like this post? Please share to your friends:
  • Скрипт для excel на python
  • Скрипт для excel google
  • Скопировать весь текст клавиши в word
  • Скопировать в одну клетку excel
  • Скопировать в буфер обмена можно excel