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