Надстройка Excel для поиска и сравнения строк по двум спискам.

Минимальные системные требования.

  • Windows XP Service Pack 3
  • Microsoft NET Framework 4.0
  • Excel 2010

В связи с продолжением работы над надстрокой возможны изменения функционала и кнопок на ленте

Введение

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

Словари

Каждый словарь представляет из себя набор таблиц и хранится во внешнем файле в формате XML. Словари никак не связаны с файлами Excel и назначаются в процессе работы над прайсами или списками.

Процесс создания словаря происходит в несколько этапов.

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

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

Использование надстройки

Pic1

Рис 1. Лента с командами управления надстройкой.

 

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

№ столбца - укажите порядковый номер столбца в котором находятся строки для анализа прайса. Этот столбец не должен содержать пустых ячеек. Пустая ячейка определяяется как сигнал завершения работы обработки прайса.

№ строки - номер начальной строки с которой следует начинать анализ прайса. 

% совпадений - определяет процент совпадения слов в наименованиях прайса и базы для того, чтобы наименование базы попало в список вариантов для сопоставления с названием прайса. На алгоритм поиска не влияет. 

ListBase - открывает файл базы для сопоставления. Файл должен содержать список наименований. Список должен находится в столбце "А" и не содержать пустых строк. Пустая ячейка в столбце расценивается как конец списка.

Dir - назначает папку хранения словарей по умолчанию

AddDic - подключает словарь и делает его текущим. На ленте в строке ниже будет отображаться наименование словаря.

ReplChar - настройка таблицы замены символов

ReplWord - настройка таблицы замены слов

ListDel - просмотр и редактирование списка удаленных позиций

Twain - просмотр и редактирование списка готовых пар наименований

Analis - запуск процесса анализа прайса

Sort - запуск формы просмотра и сортировки вариантов сопоставления

Erase - очистка таблицы вариантов сопоставления наименований

Настройка и использование надстройки

Перед запуском программы необходимо настроить таблицы замен символов и слов. Это нужно для ускоренияя поиска и более качественного сравнения. 

Таблица замены символов.

У каждого поставщика свой стиль составления прайса. Кто-то активно использует скобки, кто-то вместо скобок использует символ "/" - косая черта, кто-то использует "[ ]" квадратные скобки. Так же в наименование включаются символы *, #, %, ", -, +, =  и прочие. Для цифр мы используем ",", как десятичный разделитель, а в Европе и многих других странах используют ".". Что бы избежать разночтений, эти символы нужно предварительно удалить или заменить на пробелл. В идеальном варианте, путем замены символов, желательно получить  строку, состоящую из букв и цифр.

Pic2

 Замена на "Пусто" означает удаление символа. Вместо других символов "Пробелл". 

Таблица замены слов.

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

  • расшифровка сокращений и аббревиатур
  • исправление орфографических ошибок и опечаток
  • перевод иностранных слов
  • перевод в другие единицы измерения

Рассмотрим на примере конкретных прайсов поставщика автомасел.

Pic3

syn = synthetic - расшифровка сокращения
syntetic = synthetic - исправление орфографической ошибки
500мл = 05л - изменение единиц измерения

 

... и в другом словаре

Pic4

TOT = total  - расшифровка сокращения
остальные  строки - перевод с иностранного языка 

Внимание! 
1. В столбце "Слово в прайсе" допускается только одно слово, в столбце "Заменить на ..." возможно использование выражений.
2. При написании слов и выражений нужно учитывать замену символов. Из примера выше 500мл = 05л, в оригинале строки - 0,5л, но знак  запятой удаляется.
3. Слова можно писать в любом регистре. При сравнении строк все слова переводятся в нижний регистр.

Сортировка и разбор. 

Pic5

Слева на форме исходная строка наименования поставщика, ниже варианты сопоставления из базы и кнопки действий со строками.
Справа преобразованные строки прайса и базы, а так же таблица найденных совпадений слов.

Pic6

Пример преобразований и замены сокращеннного слова в наименовании поставщика.

Обратите внимание на совпадение 4л = 4 л. Надстройка может сравнивать одно слово с парой рядом стоящих слов.

Управление таблицами.

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

В таблице удаленных наименований и в таблице готовых пар наименований возможно только удаление строк. Добавление строк происходит в форме разбора наименований. 

 

 Скачать надстройку 

Скачать файл Price.zip (54mb)
Уже скачали 410 раз

Версии 1.0.1.3
Обновление 1.0.1.4 
Обновление 1.0.1.5 ( обновлен сертификат до 2027г)

Установка

Скачиваем, разблокируем файл архива, распаковываем архив, запускаем с правами администратора Setup.exe

Жмем  "Установить". Запускаем Excel, пользуемся.

Доработка 

(услуга платная)

Программа умеет только сравнивать два столбца с наименованиями и составлять список пар. Возможна доработка программы под Ваши нужды - сравнение цен, перенос изображений, назначение артикула. Есть несколько версий с макросами на VBA без использования надстройки.

 

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


Защитный код
Обновить

Комментарии  

0 # Сергей 15.09.2021 17:06
Здравствуйте, не могу активировать. Отправляю запрос на электронку и ничего не приходит в ответ.
Ответить | Ответить с цитатой | Цитировать
0 # Админ 15.09.2021 17:50
Перезалил установщик. Кончился сертификат. Попробуйте снова установить.
Ответить | Ответить с цитатой | Цитировать
0 # Сергей 15.09.2021 18:18
Переустановил, спасибо. А пункт "назначает папку хранения словарей по умолчанию" теперь не нужен"? Так же не смог пока разобраться чтобы надстройка заработала автоматически, подменяя значения в файле.
Ответить | Ответить с цитатой | Цитировать
0 # Админ 15.09.2021 21:03
Выбор папки я убрал, а то лепят куда можно и нельзя. Есть стандартная папка для хранения данных приложений, туда теперь и сохраняется.
Программа в файлах ничего не подменяет. Программа может только составить список пар наименований. Далее вы можете подтянуть нужные данные с помощью функций, например, ВПР.
Или обращайтесь за доработкой под свои нужды.
Ответить | Ответить с цитатой | Цитировать