Как сверить 2 таблицы в excel на совпадения
Перейти к содержимому

Как сверить 2 таблицы в excel на совпадения

  • автор:

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

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

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

В этой статье

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

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

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

  • Одна таблица используется для хранения данных об объектах (например, товарах), а другая таблица — для хранения данных о действиях (например, заказах) в отношении эти объектов. Например, в шаблоне базы данных «Борей» данные о товарах хранятся в таблице «Товары», а данные о том, какие товары включены в тот или иной заказ — в таблице «Сведения о заказе». Поскольку (в соответствии со структурой) данные о заказах отсутствуют в таблице «Товары», невозможно только на основе данных таблицы «Товары» определить, какие товары никогда не продавались. Эти сведения также нельзя получить только на основе данных таблицы «Сведения о заказе», поскольку эта таблица содержит только данные о товарах, по которым были продажи. Необходимо сравнить эти две таблицы, чтобы определить, какие товары никогда не продавались. Если нужно получить список объектов из первой таблицы, по которым не содержится соответствующих действий во второй таблице, можно воспользоваться мастером запросов на поиск записей, не имеющих подчиненных.
  • Есть две таблицы, которые содержат пересекающиеся, избыточные или противоречивые данные, и требуется консолидировать эти таблицы в одну. Предположим, например, что есть две таблицы, которые называются «Заказчики» и «Клиенты». Таблицы практически совпадают, но в одной или обеих из них есть записи, отсутствующие в другой таблице. Перед тем как объединять таблицы, нужно определить, какие записи в них являются уникальными. Если вы оказались в подобной ситуации, рассмотренные в статье способы помогут решить эту задачу, однако потребуется предпринять ряд дополнительных шагов. Можно запустить мастер запросов на поиск записей, не имеющих подчиненных, чтобы выявить записи без соответствия, однако для извлечения объединенного набора записей следует использовать эти результаты для создания запроса на объединение. Если вы хорошо знакомы с инструкциями SQL, можете пропустить поиск записей, не имеющих подчиненных, и создать запрос на объединение вручную. Часто с помощью поиска повторяющихся данных в двух или нескольких таблицах можно решить проблему пересечения, избыточности или противоречивости данных.

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

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

Инструкции по настройке базы данных «Борей»

  1. На вкладке Файл нажмите кнопку Создать.
  2. В зависимости от используемой версии Access поиск базы данных «Борей» можно выполнить в поле «Поиск» либо в области слева (в разделе Категории шаблонов выберите пункт Локальные шаблоны).
  3. В разделе Локальные шаблоны выберите шаблон Борей 2007 и нажмите кнопку Создать.
  4. Следуйте инструкциям на странице Борей (на вкладке объектов Заставка), чтобы открыть базу данных, а затем закройте окно входа.

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

  1. На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов. В группе
  2. В диалоговом окне Новый запрос дважды щелкните пункт Поиск записей, не имеющих подчиненных.
  3. На первой странице мастера выберите таблицу, которая содержит записи, не имеющие подчиненных, а затем нажмите кнопку Далее. Например, если требуется просмотреть список товаров компании «Борей», которые никогда не продавались, выберите таблицу «Товары». Выберите таблицу или запрос в диалоговом окне мастера поиска записей без подчиненных
  4. На второй странице выберите связанную таблицу и нажмите кнопку Далее. В нашем примере нужно выбрать таблицу «Сведения о заказе». Выберите таблицу или запрос со связанными записями в диалоговом окне мастера поиска записей без подчиненных
  5. На третьей странице выберите поля, связывающие таблицу, нажмите , а затем нажмите кнопку Далее. Можно выбрать только одно поле из каждой таблицы. В нашем примере нужно выбрать поле «ИД» из таблицы «Товары» и поле «ИД товара» из таблицы «Сведения о заказе». Убедитесь в том, что сопоставлены нужные поля, просмотрев поле Соответствующие поля. Выберите соответствующие поля таблиц в диалоговом окне мастера поиска записей без подчиненныхОбратите внимание на то, что поля «ИД» и «ИД товара» могут быть уже выбраны из-за существующих отношений, встроенных в шаблон.
  6. На четвертой странице дважды щелкните нужные поля из первой таблицы, а затем нажмите кнопку Далее. Например, выберите поля «ИД» и «Наименование». Выберите поля, которые должны отображаться в результатах запроса, в диалоговом окне мастера поиска записей без подчиненных
  7. На пятой странице можно просмотреть результаты или изменить структуру запроса. Нажмите кнопку Просмотреть результаты запроса. Примите предложенное имя запроса и нажмите кнопку Готово. Введите имя запроса в диалоговом окне мастера поиска записей без подчиненныхВы можете изменить структуру запроса, чтобы добавить другие критерии, изменить порядок сортировки или добавить или удалить поля. Сведения об изменении запроса Поиска несоответвленного см. в следующем разделе. Или дополнительные общие сведения о создании и изменении запросов см. по ссылкам в разделе См. также .

Создание и изменение запроса для сравнения по нескольким полям

  1. На вкладке Создание в группе Запросы нажмите кнопку Мастер запросов.
  2. В диалоговом окне Новый запрос дважды щелкните пункт Поиск записей, не имеющих подчиненных.
  3. На первой странице мастера выберите таблицу, которая содержит записи, не имеющие подчиненных, а затем нажмите кнопку Далее. Например, если требуется просмотреть список товаров компании «Борей», которые никогда не продавались, выберите таблицу «Товары».
  4. На второй странице выберите связанную таблицу и нажмите кнопку Далее. В нашем примере нужно выбрать таблицу «Сведения о заказе».
  5. На третьей странице выберите поля, связывающие таблицы, щелкните значок , а затем нажмите кнопку Далее. Можно выбрать только одно поле из каждой таблицы. В нашем примере нужно выбрать поле «ИД» из таблицы «Товары» и поле «ИД товара» из таблицы «Сведения о заказе». Убедитесь, что сопоставляются нужные поля, просмотрев текст в поле Соответствующие поля. Остальные поля можно объединить после завершения работы мастера. Обратите внимание на то, что поля «ИД» и «ИД товара» могут быть уже выбраны из-за существующих отношений, встроенных в шаблон.
  6. На четвертой странице дважды щелкните нужные поля из первой таблицы, а затем нажмите кнопку Далее. Например, выберите поля «ИД» и «Наименование».
  7. На пятой странице выберите параметр Изменить структуру запроса и нажмите кнопку Готово. Запрос откроется в режиме конструктора.
  8. Обратите внимание, что в бланке запроса две таблицы объединены по полям, указанным на третьей странице мастера (в нашем примере это поля «ИД» и «ИД товара»). Создайте объединение для каждой оставшейся пары связанных полей, перетащив их из первой таблицы (то есть таблицы, которая содержит записи, не имеющие подчиненных) во вторую таблицу. В нашем примере необходимо перетащить поле «Цена по прейскуранту» из таблицы «Товары» на поле «Цена за единицу» таблицы «Сведения о заказе».
  9. Дважды щелкните соединение (строку, соединяющую поля), чтобы открыть диалоговое окно Свойства соединения . Для каждого соединения выберите параметр, включающий все записи из таблицы Products, и нажмите кнопку ОК. В бланке запроса на конце каждой линии объединения появится стрелка. 1. При создании объединения между полями «Цена по прейскуранту» и «Цена за единицу» ограничивается вывод данных из обоих таблиц. В результаты запроса включаются только записи с совпадающими данными в полях обеих таблиц. 2. После изменения свойств объединения будет ограничена только таблица, на которую указывает стрелка. Все записи в другой таблице включаются в результаты поиска.

Примечание: Убедитесь, что все стрелки объединений имеют одинаковое направление.

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

  1. На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
  2. Дважды щелкните таблицу с несоответствующими записями, а затем дважды щелкните таблицу с связанными записями.
  3. В бланке запроса между связанными полями должны быть линии объединения. Если они отсутствуют, создайте их, перетащив каждое связанное поле из первой таблицы (таблицы с записями, не имеющими подчиненных) во вторую (таблицу со связанными записями).
  4. Дважды щелкните соединение, чтобы открыть диалоговое окно Свойства соединения . Для каждого соединения выберите вариант 2 и нажмите кнопку ОК. В бланке запроса на конце каждой линии объединения появится стрелка.

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

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

Довольно часто приходится сравнивать таблицы Excel между собой. Задача элементарная, если строк в таблице немного и всего один столбец для сравнения. А сколько времени необходимо потратить если необходимо сопоставить таблицы по трем столбцам? А если строк в таблице более 1000? Надстройка поможет справиться с этой задачей гораздо быстрее.

Описание работы программы

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

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

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

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

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

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

Результаты работы программы Сравнение диапазонов

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

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

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

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

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

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

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

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

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

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

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

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

Надстройка
VBA-Excel

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

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

Office для бизнеса Средство сравнения электронных таблиц 2013 Средство сравнения электронных таблиц 2016 Средство сравнения электронных таблиц 2019 Средство сравнения электронных таблиц 2021 Еще. Меньше

Если другие пользователи имеют право на редактирование вашей книги, то после ее открытия у вас могут возникнуть вопросы «Кто ее изменил? И что именно изменилось?» Средство сравнения электронных таблиц от Майкрософт поможет вам ответить на эти вопросы — найдет изменения и выделит их.

Важно: Spreadsheet Compare is only available with Office профессиональный плюс 2013, Office профессиональный плюс 2016, Office профессиональный плюс 2019, or Приложения Microsoft 365 для предприятий.

  1. Откройте средство сравнения электронных таблиц.
  2. В левой нижней области выберите элементы, которые хотите включить в сравнение книг, например формулы, форматирование ячеек или макросы. Или просто выберите вариант Select All (Выделить все).
  3. На вкладке Home (Главная) выберите элемент Compare Files (Сравнить файлы).

Сравнение файлов
В диалоговом окне «Сравнение файлов» в строке » Изображение кнопки» выберите более ранжную версию книги. Помимо выбора файлов, сохраненных на компьютере или в сети, можно также ввести веб-адрес, ведущий к книге, сохраненной на сайте.

Команда
В диалоговом окне «Сравнение файлов» в строке «С» Изображение кнопкидо нужной версии.

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

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

Результаты сравнения отображаются в виде таблицы, состоящей из двух частей. Книга в левой части соответствует файлу, указанному в поле «Compare» (Сравнить), а книга в правой части — файлу, указанному в поле «To» (С чем). Подробные сведения отображаются в области под двумя частями таблицы. Изменения выделяются разными цветами в соответствии с их типом.

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

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

Изменение размера ячеек

  • В двух расположенных рядом частях таблицы сравнивается каждый лист из обоих файлов, начиная с самого крайнего слева. Если лист в книге скрыт, он все равно отображается и сравнивается в средстве сравнения электронных таблиц.
  • Если содержимое не умещается в ячейках, выберите команду Resize Cells to Fit (Размер ячеек по размеру данных).
  • Различия разного типа выделяются с помощью цвета заливки ячейки или цвета шрифта текста. Например, ячейки с введенными значениями (не с формулами) выделяются заливкой зеленого цвета в расположенных рядом частях таблицы и шрифтом зеленого цвета в области результатов. В левой нижней части указаны условные обозначения, поясняющие значения цветов.

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

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

  • Вы можете экспортировать результаты в файл Excel, более удобный для чтения. Выберите Home > Export Results (Главная > Экспорт результатов).
  • Чтобы скопировать результаты и вставить их в другую программу, выберите Home > Copy Results to Clipboard (Главная > Копировать результаты в буфер обмена).
  • Чтобы отобразить форматирование ячеек из книги, выберите Home > Show Workbook Colors (Главная > Показать цвета книги).

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

  • Допустим, в вашей организации ожидается аудиторская проверка. Вам нужно проследить данные в важных книгах, в которых показаны изменения по месяцам и по годам. Это поможет вам найти и исправить ошибки раньше, чем до них доберутся проверяющие.
  • Средство сравнения электронных таблиц можно использовать не только для сравнения содержимого листов, но и для поиска различий в коде Visual Basic для приложений (VBA). Результаты отображаются в окне таким образом, чтобы различия можно было просматривать параллельно.

Сравнить две таблицы excel

Решим достаточно тривиальную задачу с помощью языка python — сравним две таблицы excel и выведем результат в третью. Что может быть проще, и почему просто не использовать средства самой программы, входящей в пакет office? Попробуем разобраться.

Дано

У нас есть две таблицы с условными названиями «Прайс1» и «Прайс2».

Обе имеют расширение .xlsx и открываются программой excel без каких-либо дополнительных действий. Но есть проблема — таблицы доступны в формате read-only дабы никто кроме владельца не мог изменить данные. Поэтому, для того, чтобы начать применять какие-либо формулы в самих таблицах необходимо таблицы продублировать, сохранив их дубликаты.

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

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

Как сравнить данные таблицы с наименьшими трудозатратами и сделать, так чтобы это сравнение легко адаптировалось под иные вводные?

Какие предложения от excel ?

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

Например формула может выглядеть следующим образом:

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

Логика следующая: берем позицию в Прайсе2 и ищем ее по Прайсу1, выводя значение.

Однако, этот вариант работает не для всех случаев: если в Прайсе2 нет позиции, которая была в Прайсе1, формула не работает —

Формула посложней

Она повторяет предыдущую, но уже учитывает значение (количество товара) при поиске.

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

Но она также бесполезна, если позиция выбыла в Прайсе2:

И третий вариант формулы

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

Для ячеек в столбце с Прайсом1 формула примет вид:

=ЕСЛИ(ЕНД(ВПР(A2;'D:\Users\al\Desktop\[Прайс1.xlsx]Лист1'!$B$3:$B$5;1;0));"Нет";ВПР(A2;'D:\Users\al\Desktop\[Прайс1.xlsx]Лист1'!$B$3:$C$5;2;0))

Для ячеек в столбце с Прайсом2:

=ЕСЛИ(ЕНД(ВПР(A2;'D:\Users\al\Desktop\[Прайс2.xlsx]Лист1'!$B$3:$B$5;1;0));"Нет";ВПР(A2;'D:\Users\al\Desktop\[Прайс2.xlsx]Лист1'!$B$3:$C$5;2;0))

Выглядит это следующим образом:

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

Формула работает. Но, помимо ужасающих размеров, она имеет одно «но», точнее два «но».
Чтобы все работало корректно, необходимо:

  • правильно указать диапазоны из Прайсов (выделить их в Прайсах Ctrl+Shift+Enter и перенести в формулу);
  • позиции товаров в финальной таблице должны идти с учетом всех выбывших и/или прибывших позиций в обоих Прайсах. Сама формула не будет искать эти позиции в Прайсах и в вставлять в итоговую. Она просто берет наименование в итоговой таблице и ищет его в Прайсах, записывая количество товара и/или его отсутствие.

Посмотрим, что предлагает python.

Python в деле

Можно пойти через использование библиотеки openpyxl и тогда решение будет выглядеть примерно так.

*Код написан не для прайсов, но для вычисления прямого и косвенного владения в компаниях, но логика та же.

текст программы

import openpyxl,pprint from openpyxl.utils import get_column_letter,column_index_from_string wb = openpyxl.load_workbook('Прайс1.xlsx') sheet=wb.get_active_sheet() wb2 = openpyxl.load_workbook('Прайс2.xlsx') sheet2=wb2.get_active_sheet() h = open('struct.txt','a') test=<> test2=<> test3=[] poisk=str(input('компания: ')) #test - словарь из "кто владеет:номер строки) for row in sheet['A2':'A290']: for cellObj in row: i = cellObj.value b = cellObj.row test.setdefault(i,b) #test2 - словарь из "кем владеют:номер столбца) for row in sheet['B1':'HH']: for cellObj in row: i = cellObj.value b = cellObj.column c = column_index_from_string(b) #переводим названия столбцов excel в цифры test2.setdefault(i,c) print('\n'+'прямое владение') # прямое владение for row1 in sheet['B2':'HH290']: for cellObj in row1: if cellObj.value ==None: #пропускаем пустые значения в клетках continue i = float (cellObj.value)/100 #A в B s =sheet.cell(row=cellObj.row,column=1).value if s!=poisk: continue d=sheet.cell(row=1,column=column_index_from_string(cellObj.column)).value #B (кем владеют) for k,v in test.items(): for u in range (2,217): # все значения- B2:F6 if sheet.cell(row=v, column=u).value ==None: continue b = sheet.cell(row=v, column=u).value # % владения q=float(''.format(i*100)) y=sheet.cell(row=1,column=u).value #кем владеют p=s+' владеет '+ d +' - '+str(q)+'%' if p not in test3: test3.append(p) print(p) h.write(p+'\n') print('\n'+'1-е косвенное участие') # 1-е косвенное участие for row1 in sheet['B2':'HH290']: for cellObj in row1: if cellObj.value ==None: #пропускаем пустые значения в клетках continue i = float (cellObj.value)/100 #A в B s =sheet.cell(row=cellObj.row,column=1).value if s!=poisk: continue d=sheet.cell(row=1,column=column_index_from_string(cellObj.column)).value #B (кем владеют) for k,v in test.items(): if d in k: # если кем владеют, есть в кто владеет - то ищем по строке значение for u in range (2,217): # все значения if sheet.cell(row=v, column=u).value ==None: continue b = sheet.cell(row=v, column=u).value # % владения q=float(i)*float(b) #процент косвенного владения A через B в С q1=float(''.format(q)) #5 знаков после запятой и * 100 y=sheet.cell(row=1,column=u).value #кем владеют print (' через '+ d + ' в ' + y +' - '+str(q1)+'%') h.write(s+' через '+ d + ' владеет ' + y +' - '+str(q1)+'%'+'\n') h.write('\n') 

Программа собирает все наименования и количество товара по ячейкам в обоих Прайсах, далее заполняет итоговую таблицу excel наименованиями и, найдя по координатам, количество товара — также и значениями количества товара.

Работает. Но громоздко и легко запутаться.

Воспользуемся возможностями библиотеки pandas, если она не установлена, то pip install pandas.
Импортируем библиотеку и считаем Прайсы в датафреймы(наборы данных):

import pandas as pd df1 = pd.read_excel('Прайс1-.xlsx', sheet_name = 'Лист1') df2 = pd.read_excel('Прайс2-.xlsx', sheet_name = 'Лист1') 

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

m = (df1.merge(df2, how='outer', on=['товар','Количество'], suffixes=['', '_new'], indicator=True)) m2 = (df2.merge(df1, how='outer', on=['товар','Количество'], suffixes=['', '_new'], indicator=True)) 

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

m3=pd.merge(m.query("_merge=='right_only'"), m2.query("_merge=='right_only'"), how ='outer').drop_duplicates(subset=['товар','Количество']) 

Осталось сохранить новую таблицу:

m3.query("_merge=='right_only'").to_excel('out.xlsx') 

На выходе мы получаем итоговую таблицу:

Как видно, в нее не попала позиция «сок», так как в этой позиции не произошло изменений.

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

Какое из решений использовать — дело вкуса.

Однако данный вариант имеет преимущества:

  • не требует перевода таблиц из «read-only»;
  • нет необходимости вручную выправлять формулы по столбцам и сами таблицы.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *