Друзья, нужна Ваша посильная помощь. Нужен макрос, который бы сравнивал две большие таблицы (Табл.1 - оригинал, Табл.2 - изменения). Суть такова: в Табл.2 могут дополнятся строки и графы, отличные от строк и граф Табл.1. И нужно, чтобы маркос сравнивал построчные данные двух таблиц и подсвечивал в Табл.2 каждую измененную / добавленную ячейку, строку, графу. Как это можно сделать и можно ли? Сам я плохо в макросах разбираюсь, поэтому прошу вашей компетентной помощи.
Друзья, нужна Ваша посильная помощь. Нужен макрос, который бы сравнивал две большие таблицы (Табл.1 - оригинал, Табл.2 - изменения). Суть такова: в Табл.2 могут дополнятся строки и графы, отличные от строк и граф Табл.1. И нужно, чтобы маркос сравнивал построчные данные двух таблиц и подсвечивал в Табл.2 каждую измененную / добавленную ячейку, строку, графу. Как это можно сделать и можно ли? Сам я плохо в макросах разбираюсь, поэтому прошу вашей компетентной помощи.Armagedon
По поводу добавления граф в Таблицу 2 - довольно странное условие. Ведь новая графа - это новый столбец, новое поле, т.е. изменение структуры, после которого вся Таблица 2 автоматически переходит в категорию несовпадений.
И еще нужны ключевые поля в каждой таблице, т.е. поле (графа) или комбинация полей (граф), однозначно определяющие конкретную строку в каждой таблице. Что можно в вашем случае считать таким ключом? Графу "Наименование продукта"? Оно уникально, повторений не будет в ней?
По поводу добавления граф в Таблицу 2 - довольно странное условие. Ведь новая графа - это новый столбец, новое поле, т.е. изменение структуры, после которого вся Таблица 2 автоматически переходит в категорию несовпадений.
И еще нужны ключевые поля в каждой таблице, т.е. поле (графа) или комбинация полей (граф), однозначно определяющие конкретную строку в каждой таблице. Что можно в вашем случае считать таким ключом? Графу "Наименование продукта"? Оно уникально, повторений не будет в ней?Gustav
Gustav, да, руководство часто может поставить странную задачу )) но надо исполнять.
По существу проблемы: Ключевые (или уникальные) поля будут "Наименование продукта - Категория продукта - Количество - Ед.измер! - Стоимость за единицу - Ед.измер", то есть их сочетание / объединение в таком порядке.
Строки могут тоже появляться новые, это является меньшей критичностью?
Я уже рассматривал функцию ОБЪЕДИНИТЬ в Эксель, но тут задача подсветить. Услов.форматирование также мне не помогло. Если есть какие-то варианты подходящего макроса?
Gustav, да, руководство часто может поставить странную задачу )) но надо исполнять.
По существу проблемы: Ключевые (или уникальные) поля будут "Наименование продукта - Категория продукта - Количество - Ед.измер! - Стоимость за единицу - Ед.измер", то есть их сочетание / объединение в таком порядке.
Строки могут тоже появляться новые, это является меньшей критичностью?
Я уже рассматривал функцию ОБЪЕДИНИТЬ в Эксель, но тут задача подсветить. Услов.форматирование также мне не помогло. Если есть какие-то варианты подходящего макроса?Armagedon
Ключевые (или уникальные) поля будут "Наименование продукта - Категория продукта - Количество - Ед.измер! - Стоимость за единицу - Ед.измер", то есть их сочетание / объединение в таком порядке.
Не подходит. Такой ключ приведет к тому, что две строки с разницей лишь в одном поле, входящим в состав ключа, например, в количестве, просто будут считаться ДВУМЯ РАЗНЫМИ СТРОКАМИ. Думаю, это не то, что вы ожидаете от этого функционала.
Ключ уникальности по возможности должен быть как можно меньше, в идеале - одно поле. Ведь поля ключа не могут быть сравнены попарно, как другие (неключевые) поля - они собственно и определяют местоположение текущей строки благодаря своей уникальности. При связывании двух таблиц по уникальному ключу строкИ одной из таблиц - в другой таблице ищется такая же строка (с таким же ключем - т.е. все поля ключа должны совпадать) и далее, после установки соответствия строк в разных таблицах, попарно сравниваются неключевые поля (и найденные расхождения, например, подсвечиваются).
Поэтому если в одной таблице в ключевом поле написано "ЯблокИ", а в другой - "ЯблокО", то это две разные несовпадающие строки (даже если все остальные поля попарно совпадают). И если по условиям общей задачи их следует считать одним и тем же, то сначала должна быть проведена работа по приведению к полному совпадению таких расхождений - хоть вручную! Иначе - это две разные строки, которые не должны сравниваться между собой по неключевым полям.
Надеюсь, я понятно излагаю? И, чтобы не показаться разглагольствующим теоретиком, в следующем посте я приведу решение с использованием условного форматирования.
Ключевые (или уникальные) поля будут "Наименование продукта - Категория продукта - Количество - Ед.измер! - Стоимость за единицу - Ед.измер", то есть их сочетание / объединение в таком порядке.
Не подходит. Такой ключ приведет к тому, что две строки с разницей лишь в одном поле, входящим в состав ключа, например, в количестве, просто будут считаться ДВУМЯ РАЗНЫМИ СТРОКАМИ. Думаю, это не то, что вы ожидаете от этого функционала.
Ключ уникальности по возможности должен быть как можно меньше, в идеале - одно поле. Ведь поля ключа не могут быть сравнены попарно, как другие (неключевые) поля - они собственно и определяют местоположение текущей строки благодаря своей уникальности. При связывании двух таблиц по уникальному ключу строкИ одной из таблиц - в другой таблице ищется такая же строка (с таким же ключем - т.е. все поля ключа должны совпадать) и далее, после установки соответствия строк в разных таблицах, попарно сравниваются неключевые поля (и найденные расхождения, например, подсвечиваются).
Поэтому если в одной таблице в ключевом поле написано "ЯблокИ", а в другой - "ЯблокО", то это две разные несовпадающие строки (даже если все остальные поля попарно совпадают). И если по условиям общей задачи их следует считать одним и тем же, то сначала должна быть проведена работа по приведению к полному совпадению таких расхождений - хоть вручную! Иначе - это две разные строки, которые не должны сравниваться между собой по неключевым полям.
Надеюсь, я понятно излагаю? И, чтобы не показаться разглагольствующим теоретиком, в следующем посте я приведу решение с использованием условного форматирования.Gustav
Обещанное решение на УФ. Ключевое поле одно - первое, "Наименование продукта". Если строка - новая, то подсвечиваются все поля, включая ключевое. В других строках подсвечиваются только расхождения.
История с новыми графами в состав решения не входит - по причине, которую я указал ранее (а начальство иногда надо стараться перевоспитывать и аргументированно прогибать под основы теории реляционных баз данных :))
Формулы на листе "Табл.2" для УФ такие (уважаем мобильных читателей форума). Для диапазона ключа - $B$4:$B$10 :
Обещанное решение на УФ. Ключевое поле одно - первое, "Наименование продукта". Если строка - новая, то подсвечиваются все поля, включая ключевое. В других строках подсвечиваются только расхождения.
История с новыми графами в состав решения не входит - по причине, которую я указал ранее (а начальство иногда надо стараться перевоспитывать и аргументированно прогибать под основы теории реляционных баз данных :))
Формулы на листе "Табл.2" для УФ такие (уважаем мобильных читателей форума). Для диапазона ключа - $B$4:$B$10 :