Архив: Необходим макрос для сортировки данных в Exel.

Бюджет 33$ / 2000
руб
в месяц
Создан: 7 лет назад
Закрыт
Описание
Добрый день.

Необходим макрос для разбора данным по листам и колонкам.
Окончательных данных в базе около 7000 штук.
Для примера я предлагаю 30.

Итак, в файле есть листы:
base – основная база, в которой хранятся ВСЕ данные.
main_base – база приходящая, которая постоянно обновляется.
final – база, которая получается в результате всех действий.
left – данные, которые не попали в final, по причине не заполненности данных.
dubles – дублированные данные
exception – исключения

1. СОВМЕЩЕНИЕ БАЗ.

1.1. Копируем полностью лист base в final. Все данные у нас сравниваются по первой колонке, где выведены ID товара. Из листа main_base берётся этот ID, ищется в листе final:

1.1.1. Если ID из первой колонки листа main_base совпадает с ID из первой колонки листа final:
1.1.1.1. Колонка 4 из листа main_base переносится в колонку 16 из листа final – по сути, обновление цены.
1.1.1.2. Колонка 5 из листа main_base переносится в колонку 19 из листа final, КРОМЕ id, указанных на листе exception – по сути, обновление остатков товаров на складе.

1.1.2. Если ID из первой колонки листа main_base не нашёлся в листе final:, то данные из листа main_base полностью переносится в лист left.

1.2. Корректируем данные на листе final, которые НЕ обновились из листа main_base:
1.2.1. С листе exception, в первой колонке указан список id товаров, с которыми следующие 3 действия делать НЕ нужно!
1.2.1. В колонке 15 ставим значение 1000
1.2.2. В колонке 17 и 18 ставим значение -20
1.2.3. В колонке 19 ставим значение 0

1.3. Поиск дублей. Сравниваем строчки по колонкам 3, 5, 6, 7, 8, 9, 10. Если ВСЕ данные совпадают, то из всех совпавших строчек оставляем только ту, у которой значение в колонке 16 выше, то есть, оставляем товар с наивысшей ценой. Все дубли, которые по цене ниже, полностью перекидываем на лист dubles.

1.4. Поиск похожих товаров. Не выполняем этот пункт для тех строчек, где уже указаны похожие товары. Пишем ID строчек через запятую и без пробелов в колонку 14. Честно говоря, не знаю какой должен быть алгоритм поиска похожих товаров, вижу его так:
1.4.1. Ищутся по колонке 3 похожие названия. Например, сначала сортируется по алфавиту.
1.4.2. Находим не более 10 штук, которые по цене выше.

2. ГЕНЕРИРУЕМ СТРОЧКИ

2.1. Если есть данные ТОЛЬКО в колонке 7 (из двух 7 и 8)
2.1.1. Колонка 29: "{колонка 3}, {колонка 6} ({колонка 5}, {колонка 7})"
2.1.2. Колонка 30: "[{колонка 5}] {колонка 3}, {колонка 6} ({колонка 7})"
2.1.3. Колонка 42 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 3},-{колонка 6}-({колонка 5},-{колонка 7})"
2.1.4. Колонка 43 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 5}-{колонка 3},-{колонка 6}-({колонка 7})_{колонка 9}"

2.2. Если есть данные ТОЛЬКО в колонке 8 (из двух 7 и 8)
2.2.1. Колонка 29: "{колонка 3}, {колонка 6} ({колонка 5}, {колонка 8})"
2.2.2. Колонка 30: "[{колонка 5}] {колонка 3}, {колонка 6} ({колонка 8})"
2.2.3. Колонка 42 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 3},-{колонка 6}-({колонка 5},-{колонка 8})"
2.2.4. Колонка 43 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 5}-{колонка 3},-{колонка 6}-({колонка 8})_{колонка 9}"

2.3. Если есть данные и в колонке 7, и в колонке 8
2.3.1. Колонка 29: "{колонка 3}, {колонка 6} ({колонка 5}, {колонка 7} по {колонка 8})"
2.3.2. Колонка 30: "[{колонка 5}] {колонка 3}, {колонка 6} ({колонка 7} по {колонка 8})"
2.3.3. Колонка 42 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 3},-{колонка 6}-({колонка 5},-{колонка 7}-po-{колонка 8})"
2.3.4. Колонка 43 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 5}-{колонка 3},-{колонка 6}-({колонка 7}-po-{колонка 8})_{колонка 9}"

2.4. Если нет данных и в колонке 7, и в колонке 8.
2.4.1. Колонка 29: "{колонка 3}, {колонка 6} ({колонка 5})"
2.4.2. Колонка 30: "[{колонка 5}] {колонка 3}, {колонка 6}"
2.4.3. Колонка 42 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 3},-{колонка 6}-({колонка 5})"
2.4.4. Колонка 43 (в английском нижнем регистре, убираем '"/:; и пробелы меняем на – ): "{колонка 5}-{колонка 3},-{колонка 6}_{колонка 9}"

2.5. Для колонок 42 и 43:
2.5.1. Убираем все пробелы из колонок 7 и 8.
2.5.2. Иногда в данных встречается " x " (например, "1,9 см х 7,2 см"). Меняем на "-na-". ТО есть, должно получиться "1,9sm-na-7,2sm". Учтите, что "x" русской раскладки, то есть это буква хэ, а не латинская икс.
2.5.3. Иногда в данных встречается " / " (например, "120 мг / 5 мл"). Меняем на "-na-". ТО есть, должно получиться "120mg-na-5ml".
2.5.4. Иногда в данных встречается " + " (например, "160 мг + 12,5 мг"). Меняем на "-plus-". ТО есть, должно получиться "160mg-plus-12,5mg".

+ ещё кое что, кину в общении (не влезло тут :) ).
Готов обсуждать детали ТОЛЬКО здесь. Скайпы и прочие системы общения актуальные только с исполнителем.
Категория

Похожие проекты

$6
0 0
Сделать fcc 5. 8 ГГц на дроне Dji mini 4 pro пульт Dji rc2, по возможности убрать лимит высоты 500 метров. Прошивка дрона 1. 1100. Прошивка пульта 10....
 
0 2
Основной задачей является тестирование игрового мода для разрабатываемого нами проекта на базе GTA SAMP (San Andreas Multiplayer). Главной задачей тестирования является поиск багов, то есть недоработок игрового мода, как смысловых (система работает, но бессмысленно/не правильно) так и визуальных (метка......
safe 
0 1
Разработка виртуальной среды для Proxmox. Необходимо разработать обход обнаружения античитами видеоигр виртуальных машин на proxmox. Надо иметь возможность разделения видеокарты на несколько виртуальных машин и предоставлять прямой доступ к карте. Использовать патченное ядро, закрывающее баг RTDS обнаружения.......
2 месяца назад
$3
0 1
расшифровать или подобрать MD5 Хэш: c74d673f4042bd732ae2a287c059a9ba. начало ответа 8385626820 8385626820. хх....
5 месяцев назад
safe 
0 5
Cофт для автоматической торговли токенами в сети Solana. На разработку с тестами и устранением багов выделяется 1-2 месяца, при превышении контракт расторгается!...
safe 
0 8
Необходимо разработать систему, которая: Подключается к API Diagnocat и iDent (через токены доступа). Получает данные о пациенте, результатах диагностики, снимках и назначениях. Автоматически формирует структурированный отчет по шаблону (включая врачей, этапы лечения, стоимость и описание процедур).......
 
0 1
Необходимо связать БД 1C:ERP с БД Outlook, MS Access, Битрикс24. Например при вводе нового сотрудника в 1С:ERP он должен автоматически появляться в вышеперечисленных БД....
10 месяцев назад
 
0 3
Требуется реализация отчёта на кастомизированной 1С:УПП 1. 2, ТЗ и контрольный пример во вложении, 80% кода должно быть покрыто модульными тестами....
10 месяцев назад
$7
0 5
Мне нужно копировать мой текст и вставлять в одну группу ВК с открытой стеной для публикации рекламы. Задача скрипта/сервиса/программы - примерно каждые 10 секунд брать мой текст и вставлять в эту группу. Я пробовал через одну программу, которая записывает действия мышки и потом повторяет, но она как-то......
1 год назад
safe 
0 2
Написать прошивку для A94B114, используя 2 подобные рабочие прошивки. Все файлы есть....
$21
0 3
Нужно разархивировать файл архив. ujems, есть распаковщик, но выдает ошибку. Прислать пруфы(скрины)....
1 год назад
safe 
0 2
Входные: Имеется скрипт по обработке email писем и добавление их в систему Redmine   Проблема: Система обработки этих писем написана некорректная и негибкая    Задача: Переписать логику обработки входящих писем, чтобы исключить их потерю при незначительных отклонениях от ожидаемой структуры....
$37
0 4
- В обязанности сотрудника входит поддержание мобильного приложения системы автоматизации бизнеса. - Работа сдельная: задачи выдаются на оценку, далее после согласования передаются на реализацию. - Заключаем договор и NDA (соглашение о неразглашении)....
$71
0 1
Информация о проекте: Проект включает в себя React Native приложение с Expo внутри которого находится webview с сайтом На устройствах с ОС IOS проблема с воспроизведением видео....
1 год назад
safe 
0 2
Разрабатываю десктопные программы на языке Java,  а так же Java + SQL....
 
0 9
  1. Чтобы можно было писать описание события (без заголовка) - превью в списке берется N количества букв с начала. (в списке писать дату события и сколько осталось до него) . Выставление даты и времени напоминания и ИНТЕРВАЛА ПОВТОРА ОТ 1 МИНУТЫ! Выставлять количество повторов, далее напоминания прекращаются.......
safe 
0 7
Сайт arg2028t. beget. tech/. Нужно сделать вот такой калькулятор. airprint. by/outdoor/wide-format. и еще некоторые доработки....
safe 
0 10
Краткое описание: Мы ищем исполнителя для тестирования функционала мобильного приложения на платформе Android. Задача включает проверку основных функций приложения, таких как работа комнаты, передача видео, звука и чата, а также создание подробной отчетности о найденных ошибках.   Требования к исполнителю:......
safe 
0 17
Разработка чат-бота под ваши нужды....
Смотреть все