Здравствуйте! Нужен обучаемый макрос, который сможет в группе excel файлов в заданных столбцах искать текст, разбирать его на части и собирать его заново, но в определенном порядке. Обучать макрос, т.е. вносить дополнительные корректировочные слова и синонимы буду я в процессе работы с файлами. В приложении 2 файла прайса от разных поставщиков. В левом столбце название товара. Как видите у разных поставщиков название товара отличается. Кто-то использует точки, пробелы, сокращения и т.д. Нужно чтобы макрос анализировал заданные строки с названием товара и приводил их к стандартному виду(как в файле ready). Пользоваться макрос должен базой данных идентификаторов, которые я буду пополнять и корректировать в процессе работы. Рассмотрим пример. В файле 1 рассмотрим строку 6, в файле 2 строку 8. Это один и тот же товар у разных поставщиков. Из названия товара нужно вытащить:
Название бренда
Название продукта
Размер/объем/вес продукта
Вкус продукта
Цену поставщика
На каждый из (1-4) параметров будет своя база данных. Как я вижу алгоритм работы(возможно вы предложите более быстрое решение). Название товара разбивается на слова (разделитель пробел). Каждое из слов прогоняется по БД 1-4. Т.е. в базе данных "Бренд", будет указано слово "BSN". Макрос анализирует все лова из названия, и если находит "BSN", то опознаёт бренд. Далее макрос работает с оставшимися словами из названия и оставшимися БД (2-4). Находит "Amino-X" и опознаёт в этом слове название продукта и т.д. После полного разбора названия на необходимые для идентификации параметры нужно в готовом файле указать стоимость товара из каждого прайса. В нашем примере всего два прайса, а в реальной работе их может быть 5-10. Каждый прайс индивидуален, т.е. столбец с названием и искомой ценой у каждого свой. В макросе я должен буду это указывать самостоятельно.
На мой взгляд - слишком много неизвестных. Например: Разобьем на слова вот это: BSN Amino-X 70 serv - Blue Raz или вот это BSN Amino-X 70 serv - Blue Raz мятая
Что будем искать? "Blue", "Raz", "мятая" или "Blue Raz", "мятая" или "Blue Raz мятая"?
и т.д. ...
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Искать всё, в том числе и сочетания. В базе данных будет сочетание "Blue Raz", но не будет отдельно "Blue" и "Raz". Наверное имеет смысл применить условие Если в названии осталось слова более 3 букв и для товара не найден один из 4-х необходимых параметров, то оставшиеся слова нужно сочетать между собой по порядку: первое со вторым. если нет, то второе с третьим и т.д.
Обучаемый макрос будет стоить раз в 10-20 больше, чем обычный (необучаемый) Я бы не стал на вашем месте городить такое для 5-10 прайсов, - проще сделать вручную один раз таблицу соответствия, и по ней приводить все наименования / бренды к единому виду
Игорь написал: проще сделать вручную один раз таблицу соответствия, и по ней приводить все наименования / бренды к единому виду
я примерно так и хочу. В одной таблице будут названия возможных брендов, в другой названия продуктов, в третьей вкусы и т.д. Мне нужна помощь в объединении всех операций в один клик. Я сам вручную могу:
Разделить фразу на слова
Каждое из слов прогнать функцией ВПР по каждой из таблиц
В случае успешного поиска внести в ячейку название найденного значения
Все незадействованные слова из фразы соединить попарно и снова прогнать через ВПР
Можно ведь это прописать в макросе? Я называю его обучаемым, поскольку таблицы соответствия я буду в процессе работы дополнять или редактировать.
Есть похожая самообучаемая программа, отписал в личку ------------------------------------------------------------------------------------------ ТС запросил skype и больше на связь не выходил.