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

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

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

Поиск отличий в двух таблицах в 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. Вы можете идентифицировать элементы, которые являются одинаковыми, разными или отсутствующими в столбцах. Например, у нас есть две похожие таблицы с одинаковыми именами столбцов, но между этими двумя таблицами есть некоторые различия. Теперь вы хотите найти различия для сравнения каждой строки двух таблиц, как показано ниже. В этом руководстве вы узнаете, как использовать функцию Power Query для решения этой задачи в Excel.


Сравните две таблицы в Power Query

Пожалуйста, следуйте пошаговому руководству, чтобы выполнить эту работу:

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

1. Выберите первую таблицу, которую вы хотите сравнить, затем в Excel 2019 и Excel 365 щелкните Данные > Из таблицы/диапазона, см. снимок экрана:

Внимание: в Excel 2016 и Excel 2021 нажмите Данные > Из таблицы, см. снимок экрана:

2. Затем в открытом Редактор Power Query окна, нажмите Закрыть и загрузить > Закрыть и загрузить в, см. снимок экрана:

3, В следующих Импортировать данные диалоговое окно, выберите Только создать соединение вариант, а затем щелкните OK кнопку, чтобы закрыть диалог. см. скриншот:

4. Повторите те же шаги 1-3, чтобы создать соединение для второй таблицы. Наконец, у вас должно быть два запроса, соответствующих вашим таблицам. И вы можете увидеть две таблицы в Запросы и связи панель. Смотрите скриншот:

Объединение запросов для сравнения двух таблиц

После создания запросов из двух таблиц вы должны объединить запросы в новую таблицу.

5. Пожалуйста, продолжайте нажимать Данные > Получить данные > Объединить запросы > идти в Excel 2019 и Excel 365 см. снимок экрана:

Внимание: в Excel 2016 и Excel 2021 нажмите Данные > Новый запрос > Объединить запросы > идти, см. снимок экрана:

6. Во всплывающем идти диалоговом окне выполните следующие действия:

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

7. Затем новый столбец для второй таблицы вставляется рядом с первой таблицей:

  • Нажмите Расширьте значок рядом с заголовком столбца.
  • Проверьте Расширьте опцию.
  • Отметьте столбцы, которые вы хотите вставить в таблицу сравнения.
  • Наконец, нажмите OK кнопку.

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

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


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (0)


Оценок пока нет. Оцените первым!

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 (надеюсь, он вам понравился :)

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

Хитрости »

15 Март 2019              24312 просмотров


Одной из наиболее часто решаемых задач в Excel является сравнение таблиц между собой. Как правило это делается либо для выявления расхождений/совпадений между двумя таблицами, либо для получения данных из одной таблицы в другую на основании какого-то критерия. Чаще всего для этого используется функция ВПР(VLOOKUP). Но и PowerQuery здесь тоже может помочь, особенно если речь идет о больших объемах данных. Называется этот инструмент – Слияние. При этом Слияние в PowerQuery имеет несколько реализаций, которые мы и рассмотрим.

Если еще не работали с надстройкой PowerQuery и не знаете что это такое, то для начала лучше ознакомиться со статьей: Power Query — что такое и почему её необходимо использовать в работе?

Скачать файл с исходными данными, используемый в видеоуроке:

  Слияние запросов в PowerQuery.xlsx (52,6 KiB, 988 скачиваний)


Для примера возьмем две таблицы:
Таблица 1
Таблица 2
Как видно здесь есть столбец, который совпадает в обеих таблицах – ID отдела. Значит на основании этого столбца эти две таблицы можно сравнивать и объединять, что мы и будем делать.
Сначала загружаем по очереди обе таблицы в PowerQuery: вкладка Данные(или вкладка Power Query) -группа Загрузить и преобразоватьИз таблицы
Объединить запросы
После загрузки запрос каждой таблицы переименованием в более понятные названия Отделы и Сотрудники.
Чтобы к каждому сотруднику подставить название отдела из таблицы Отделы на основании ID необходимо выделить запрос Сотрудники -перейти на вкладку Главная -группа ОбъединитьОбъединить запросыОбъединить в новый запрос
В демонстративных целях я выбираю Объединить в новый запрос, чтобы запрос Сотрудники не изменялся. В реальных задачах можно использовать Объединить запросы.
Появится окно объединения запросов
Параметры объединения
В этом окне вверху будет по умолчанию выбрана таблица, из которой было вызвано слияние. Выделяем столбец ID отдела, т.к. именно на основании него мы хотим сравнить таблицы. Далее выбираем из списка таблицу, с которой хотим сравнить таблицу Сотрудники. Это таблица Отделы. В ней выделяем так же столбец ID, т.к. сравнивать будем именно по этому столбцу.

Примечание: в качестве ключевого столбца может быть не один столбец, а сразу несколько. Здесь надо строго соблюдать очередность выделения столбцов-ключей – в обеих таблицах последовательность должна быть одинаковой. Для этого в заголовке каждого столбца PowerQuery подписывает порядковый номер, показывая порядок, в котором были выделены столбцы ключей.

И в самом низу выбираем из списка тип слияния. Всего доступно 6 типов:

    1. Внешнее соединение слева (все из первой таблицы, совпадающие из второй)
    2. Внешнее соединение справа (все из второй таблицы, совпадающие из первой)
    3. Полное внешнее (все строки из обеих таблиц)
    4. Внутреннее (только совпадающие строки)
    5. Анти-соединение слева (только строки в первой таблице)
    6. Анти-соединение справа (только строки во второй таблице)

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

1. Внешнее соединение слева (все из первой таблицы, совпадающие из второй)
Это по сути аналог ВПР к первой таблице. В результате будет создана таблица, в которой будут все строки первой таблицы и только те строки из второй, ID которых совпадает:
Внешнее соединение слева
Однако здесь есть существенное отличие от ВПР(плюс или минус — зависит от ситуации). А заключается оно в следующем: если во второй таблице одному ключу соответствует более одного значения — то Power Qwery вернет для каждого такого ключа первой таблицы все строки этого ключа из второй. Например, вторая таблица содержит такие значения:
Задвоение записей второй таблицы
как видно, для ID 1 целых три записи. Как следствие мы получим для каждого ID 1 первой таблицы не одну строку, а 3. У нас там два сотрудника с ID 1: Ангелочкин П.Н. и Удачный С.А.:
Одинаковые ID
а в итоге мы получим «раздутую» первую таблицу:
Множество записей в LeftJoin
Чтобы этого избежать и получить только первую запись из всех(полный аналог ВПР в Excel) можно изменить запрос. Не разворачивать полученные в результате слияния таблицы, а выбрать из них только первое значение. Для этого сразу после слияния идем на вкладку Добавление столбцаНастраиваемые столбец и в качестве формулы записываем:
try [Отделы]{0}[Отдел] otherwise null
Настраиваемый столбец
Если кратко, то мы берем полученную в результате запроса таблицу для каждой строки([Отделы]), отбираем из неё первую строку({0} — в PowerQwery отсчет строк начинается с нуля) и берем из этой строки значение только столбца [Отдел]. А try … otherwise null — это обработка ошибок в случаях, когда для строк первой таблицы нет совпадений во второй. Если ошибок нет — записывается результат, если будет ошибка — запишем значение null(аналог пустой ячейки в Excel). Т.е. такая конструкция это нечто вроде ЕСЛИОШИБКА в Excel.
Кстати, даже эту строку можно записать еще короче:
[Отделы][Отдел]{0}?
try … otherwise выглядит нагляднее, но вопросительный знак на конце короче. Хотя по сути в данной ситуации делает тоже самое: если не углубляться, то он говорит PowerQwery выполнять строку только в случае, если она возвращает значение. Особое внимание здесь следует обратить на то, что при использовании вопр.знака в нашем случае сначала надо указать имя таблицы в квадратных скобках, потом имя столбца и самым последним номер строки в фигурных скобках. Т.е. немного изменяем порядок обращения. Если этого не сделать, то вопр.знак не сработает как ожидается.
Запрос в расширенном редакторе будет выглядеть примерно так:

let
    Источник = Table.NestedJoin(Сотрудники,{"ID отдела"},Отделы,{"ID"},"Отделы",JoinKind.LeftOuter),
    custom = Table.AddColumn(Источник, "Пользовательский", each try [Отделы]{0}[Отдел] otherwise null)
in
    custom

2. Внешнее соединение справа (все из второй таблицы, совпадающие из первой)
Тоже аналог ВПР, но уже ко второй таблице. В результате будет создана таблица, в которой выводит все строки второй таблицы и только те строки первой, которые есть во второй(опять же, на основании столбца ID):
Внешнее соединение справа
Но здесь есть существенное отличие от работы ВПР. Как видно, у нас два сотрудника из одного отдела и один сотрудник, для которого отдел отсутствует. PowerQuery взяла таблицу отделов и отобрала только те, для которых совпал ID у таблицы сотрудники. Но при этом для каждого отдела добавились ВСЕ сотрудники с одним ID. ВПР в таких случаях возвращает всегда только первое найденное совпадение и для отдела с ID 1 у нас просто получилось бы два одинаковых сотрудника(Ангелочкин П.Н.).
Если нужно только первое(точный аналог ВПР), то решение такое же, как и в случае с Внешним соединением слева — через добавление столбца и отбора первой найденной записи.

3. Полное внешнее (все строки из обеих таблиц)
Выводит все строки из обеих таблиц. Примерно то же самое, если бы мы применили к обеим таблицам ВПР и после этого добавили к первой таблице те значения из второй, которые не найдены в первой:
Полное внешнее соединение

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

5. Анти-соединение слева (только строки в первой таблице)
Выявляет те строки первой таблицы, для которых нет соответствия во второй таблице:
Анти-соединение слева

6. Анти-соединение справа (только строки во второй таблице)
Выявляет те строки второй таблицы, для которых нет соответствия в первой
Анти-соединение справа


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

Скачать файл с исходными данными, используемый в видеоуроке:

  Слияние запросов в PowerQuery.xlsx (52,6 KiB, 988 скачиваний)

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


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

I want to take two similar but not the same tables, compare them, and generate 3 to four spreadsheets that can quickly and concisely identify the differences between the two tables — finer details regarding this are below. Using Office 365 latest version I am told Power Query would be good for this type of thing. I am happy to just be pointed at relevant information to learn how to do this, will only send an example spreadsheet to anyone who can help with this question as I do not want to post it publicly here, thanks.

I get a cable data listing for an electrical project. This is re-issued as design or specs change over time.

Column A relates to a given Cable identification number. The rest of the columns relate to particulars for each cable — what type it is, what equipment it runs from and to, and what room or space that equipment is in.

When a new sheet (table) is issued, it may contain new cables that were not on the older version of the sheet. It may also be missing cables from the older sheet if they were no longer required and deleted from the project.

Additionally — a cable type may be changed to better suit the job it is to do, for example an engineer may request a revised larger rating cable type be used. (columns B-C)

Then the equipment it runs to or from may change location to a different room.(Columns E-F and G-H)

A cable may be run for example from one switchboard in one location then design decides to run it from a different switchboard found in a different location, all of these variables will be in the one row for the given cable which would be different from old to new sheet.

I need to very quickly be able to establish a comparison between the two tables:

a) What cables are the same in both tables

b) What are new cables in the new table

c) What are deleted cables from the old spreadsheet that no longer appear in the new table

Once that query is performed I need to establish

1) Are there any differences in the row contents for any cables that are common to both sheets

Currently I tend to insert columns, copy from one sheet to the other and use conditional formatting to highlight duplicates. You can imagine with 4200+ cables in column A, and 8 odd columns to compare how long this would take. Especially if there are differences between the tables as you have to match the column A contents first. Hoping someone can understand what I am saying and maybe point me in the right direction to learn this. Thank you.

Понравилась статья? Поделить с друзьями:
  • Сравнение двух страниц excel
  • Сравнение двух столбцов в excel счетесли
  • Сравнение двух столбцов в excel на совпадение значений в столбцах впр
  • Сравнение двух столбцов в excel на совпадение значений в столбцах excel
  • Сравнение двух столбцов в excel на совпадение значений в разных строках