Надстройка 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)
Уже скачали 40 раз

Версии 1.0.1.3
Обновление 1.0.1.4 

Установка

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

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

 

 

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


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

Комментарии  

0 # linar 04.12.2020 04:53
Помогите пожалуйста-не ставится http://joxi.ru/vAWpP9qUOyOqqr
Ответить | Ответить с цитатой | Цитировать
0 # linar 04.12.2020 05:00
Цитирую linar:
Помогите пожалуйста-не ставится http://joxi.ru/vAWpP9qUOyOqqr

Сама .net framework 4. установлена
Ответить | Ответить с цитатой | Цитировать