Определение: Контрольный лист - первый лист в книге с которым происходит сравнение всех последующих листов и после в него добавляются данные. Сверяемый лист- любой последующий лист после контрольного, используемый для сравнения с контрольным и подстановки данных в контрольный
В ней лежит 3 листа (Листов может быть больше) Необходимо сопоставить все ячейки в столбце A (name) 1 листа (контрольного листа) (Uggsonline) с всеми ячейками в столбце A (name) 2 (Uggi.ru) и 3 (Uggsofficial.ru) листами, и также со всеми последующими, если они имеются. Макрос должен уметь сопоставлять поля name со всеми новыми листами в книге.
Если ячейки в столбце A (Контрольного листа) и A (Сверяемого листа) (их имена) совпадают более чем на 70%, То переместить данные из совпадающих строк столбцов A и B в Первый лист в ту же строку где выявлено совпадение в свободные столбцы к примеру C и D и так далее (E, F; G,H;). http://take.ms/07Oo5
Пример, обработчик берёт сверяемый лист Uggi.ru и ищет совпадение всех его строк в поле name с 1 строкой первого (контрольного листа), и так далее. После удаляет совпадающие найденные строки name и URL из листа который сравнивался и вставляет их в первый лист в ту же строку только рядом.
Строки в последующих листах не нашедшие совпадения с контрольным листом пометить светло-красным цветом.
Если есть вопросы или что-то не ясно, спрашивайте. Просьба указывать цену макроса.
alexex написал: Если столбцы A (Контрольного листа) и A (Сверяемого листа) (их имена) совпадают более чем на 70%,
Что именно вы имели ввиду столбцы или ячейку и как понять 70%, как они определяются? Желательно указать бюджет и срок, так как все же нужно вникнуть в суть Вашего ТЗ, потому как сразу непонятно (и стоит ли оно того). Бюджет 400 рублей. Не претендую.
Под 70% имеется ввиду символьное совпадение контрольной ячейки с ячейками сверяемого листа, алгоритм должен считать кол-во символов из контрольной ячейки и брать их за 100% потом сверять с другими листами, насколько совпадает. Основная задача идентифицировать одинаковые товары на разных сайтах по полю name и потом мы уже скормим эту инфу парсеру.
Несколько раз выполнял подобные задания. 1. Посимвольный разбор не вариант, ибо будет работать очень медленно, буквально, несколько сот строк в минуту. Нужно работать словами. 2. Встречается большое количество грамматических ошибок, подмена похожих английских символов типа "с", "р" и прочее. Сокращения и аббревиатуры. Компьютер воспринимает это, естественно, как несовпадение 3. Знаки препинания и прочие вспомогательные типа "-", "\", "/", тоже проблема. 4. Прежде чем сравнивать строки нужно привести к единообразному виду, исключить знаки препинания, все символы в один регистр.
Плюс такой пример (как выше) "Дрель-шуруповерт BOSCH PSR 12 В" и "Дрель-шуруповерт BOSCH PSR 14,4 В". Несовпадение 3 символа, но это разные шуруповерты.
Такая программа в 400р не уложится. Как минимум на порядок выше.
Ігор Гончаренко, Joiner, Ваши примеры убедительны, предлагайте Ваше решение, но макрос по итогу должен определять одинаковые товары с разных сайтов по названию. Какой бюджет пишите, я согласую.
alexex, я не предлагаю свои услуги. 1. Я пока занят другим заказом. 2. В том виде как Вы заказываете, ИМХО, сделать невозможно на 100%. Часть совпадений не найдет, часть, наоборот, определит совпадение, которое не подходит.
Делал так. Изначально программа обрабатывала список и составляла другой список, где для каждой позиции подбирались несколько строк с максимальным сходством. Если совпадение 100%, то, естественно, принималось как совпадение. Потом уже пользователь с помощью специального макроса проходил по этому списку и выбирал подходящее или отказывался. То что выбиралось - записывается в специальный словарь, тогда при следующем запуске программы, строка сначала проверяется по словарю и тогда вмешательство пользователя уже не требуется. Со временем словарь пополняется и требуется все меньше и меньше работы для проверки. Дополнительно подключается словарь с ошибками (обычно от одного поставщика одни и те же ошибки) и словарь сокращений и аббревиатур, если нужны.
Если такой вариант решения устроит, то можем пока обсудить сроки и стоимость, решение попозже.
Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.