По договоренности
Необходимо написать скрипт на VBA, который на основании определенных правил сможет конвертировать характеристики товаров в нужный формат.
Имеем таблицу Excel с 4 листами:
- Правила
- Исходная таблица
- Рабочий лист
- Пример конечной таблицы
На листе Правила содержатся правила преобразований/переноса столбцов в некотором формате, если необходимо, можем немного подредактировать их формат по ходу работ. Например, правила описывают, из какого столбца исходной таблицы в столбец конечной таблицы переносить значения, нужно ли делать какие-то дополнительные преобразования и так далее.
В столбце "Преобразование значений" описаны правила замен внутри одной ячейки, в формате "Старое_значение_1|Новое_значение_1; Старое_значение_2|Новое_значение_2". Если необходима замена содержимого только по полному вхождению слова/фразы, то используются фигурные скобки, например: {диван}|прямой; диван П-образный|п-образный; диван угловой|угловой. Это нужно чтобы содержимое "диван П-образный" заменило на "п-образный", а не на "прямой П-образный".
В столбце "Дополнительно заполнить (если содержит значение)" содержатся правила о том, нужно ли заполнять какой-то иной параметр конечной таблицы, на основании содержимого ячейки исходной таблицы.
Столбец "Дополнительно заполнить (если не содержит значение)" содержит правила о том, нужно ли заполнять какой-то иной параметр конечной таблицы, на основании отсутствия какого-то содержимого ячейки исходной таблицы.
Для числовых значений есть также правило "Множитель для чисел", чтобы можно было использовать при необходимости перевода величин (например, из см в мм).
На листе Исходная таблица содержатся данные, которые мы будем использовать в качестве исходных, для преобразования могут быть задействованы не все столбцы исходной таблицы. При преобразовании будут использоваться только те столбцы, которые описаны на вкладке Правила. Заголовки столбцов на этом листе всегда будут в строке 1.
Лист "Рабочий лист" должен заполняться автоматически на основании данных исходной таблицы и правил. Например, по нажатию кнопки на этом листе чтобы активировался макрос. Обратите внимание, что заголовки столбцов на рабочем листе всегда в строке 3, а заполнение данных начинается со строки 5.
Ну и чтобы было понятно, что надо получить на выходе, на вкладке "Пример конечной таблицы" есть пример того, что должно получиться на рабочем листе после работы макроса.