Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Собрать варианты пакетов с продуктами заданного списка - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Собрать варианты пакетов с продуктами заданного списка (Формулы/Formulas)
Собрать варианты пакетов с продуктами заданного списка
audrey Дата: Вторник, 24.04.2018, 19:08 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Доброго времени суток всем!
Столкнулся с комбинаторной задачей и сижу над ней уже 3 дня.
Задача в следующем: Из заданного списка продуктов разных категорий нужно разложить количество этих продуктов в варианты пакетов. В каждом варианте должно быть по 6 категорий равного количества продуктов.
Цель: Собрать заданное количество пакетов в ячейке L1. Вариантов может быть много, главное разложить все продукты в пакеты. При сборке следующего варианта должен учитываться остаток с предыдущего варианта сборки.
Ниже описываю пример предварительно отфильтровав продукты по категориям:
Дано:

Как должно быть:

Вручную собирать варианты занимает около двух дней, поэтому возникла необходимость написать макрос который при нажатии кнопки автоматизирует процесс. Думаю как это все сделать но пока в голову ничего не приходит.
Буду очень признателен если кто-нибудь откликнется.
К сообщению приложен файл: Book1.xlsx (15.5 Kb)
 
Ответить
СообщениеДоброго времени суток всем!
Столкнулся с комбинаторной задачей и сижу над ней уже 3 дня.
Задача в следующем: Из заданного списка продуктов разных категорий нужно разложить количество этих продуктов в варианты пакетов. В каждом варианте должно быть по 6 категорий равного количества продуктов.
Цель: Собрать заданное количество пакетов в ячейке L1. Вариантов может быть много, главное разложить все продукты в пакеты. При сборке следующего варианта должен учитываться остаток с предыдущего варианта сборки.
Ниже описываю пример предварительно отфильтровав продукты по категориям:
Дано:

Как должно быть:

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

Автор - audrey
Дата добавления - 24.04.2018 в 19:08
anvg Дата: Вторник, 24.04.2018, 21:31 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток
главное разложить все продукты в пакеты

Как вы предполагаете выполнить это требование, если Product3 = 78318. Если вы его разложите в любые комбинации, то всё равно ближайший меньший остаток от Product1 будет 5 681, так как оговаривается одинаковое количество.
Тут уже пробегал, видимо ваш коллега по учёбе. Так и не смог детализировать - что такое вариант пакета.
Пусть в пакете по 1 штуке каждого из продуктов, тогда условие выполняется
6 категорий равного количества продуктов.

Вариант решения из такого простого допущения, а ограничений за запрет я не вижу. Всего будет 78318 пакетов.
К сообщению приложен файл: 6298336.xlsx (21.4 Kb)
 
Ответить
СообщениеДоброе время суток
главное разложить все продукты в пакеты

Как вы предполагаете выполнить это требование, если Product3 = 78318. Если вы его разложите в любые комбинации, то всё равно ближайший меньший остаток от Product1 будет 5 681, так как оговаривается одинаковое количество.
Тут уже пробегал, видимо ваш коллега по учёбе. Так и не смог детализировать - что такое вариант пакета.
Пусть в пакете по 1 штуке каждого из продуктов, тогда условие выполняется
6 категорий равного количества продуктов.

Вариант решения из такого простого допущения, а ограничений за запрет я не вижу. Всего будет 78318 пакетов.

Автор - anvg
Дата добавления - 24.04.2018 в 21:31
audrey Дата: Среда, 25.04.2018, 11:34 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
anvg,
Добрый день.
Изначально задача поставлена так: избавиться от товара посредством сюрприз-пакетов, в котором может быть все что угодно но 6 штук из каждой категории (продукты я пометил Кодами, а Категории - Product1...Product6). Это своего рода "кот в мешке" - мы не знаем что может быть внутри но знаем, что в каждом пакете может быть суммарно 6 категорий продуктов (например, в одном пакете уместили 1 хлеб, 1 яблоко, 1 банан, 1 кружку, 1 компас, 1 наручные часы и таких пактов несколько тысяч). Мы смотрим на объем товара и прикидываем что всего товара хватит на например 70 000 пакетов. И эти пакеты мы раскидываем по вариантам. Почему по вариантам? потому что одного варианта пакета может не хватить так как каждого товара разное количество.
Почему файл сделан таким образом? - потому что сборочная линия видит сколько нужно пакетов и сколько в тот или иной вариант положить продуктов разных кодов.
Пример: в файле 9501 продуктов с кодом 4065 категории Product1, 9382 продуктов с кодом 5454 категории Product2, 9319 продуктов с кодом 7462 категории Product3, 9643 продуктов с кодом 2950 категории Product4, 9966 продуктов с кодом 9171 категории Product5 и 9584 продуктов с кодом 8504 категории Product6.
Я беру минимум из этих цифр - 9319 штук кода 7462 (в файле округлял до 9000) и начинаю формировать первый вариант пакета в котором будет 9319 продуктов из каждой категории. Ага, код с продуктом 7462 закончился, но вот продуктов с другими кодами остались остатки, например продукта с кодом 5454 осталось 9382 - 9319 = 63 штуки. Так вот из этих 63 штук я ищу другие продукты с таким же количеством, но опять же из разных категорий, и формирую следующий вариант пакета. И так далее пока не кончится товар, понятное дело что останутся излишки которые в равных долях не уместить в пакет, но в реальности куда больше объема товара и важно начинать с больших объемов а излишки из десятков штук можно сформировать вручную или дождаться пополнения товара. Важно чтобы в каждом пакете, повторюсь их может быть несколько тысяч, было по одной штуке продукта из каждой категории, то есть как в примере приведенном выше - 1 хлеб, 1 яблоко, 1 банан, 1 кружку, 1 компас, 1 наручные часы). Надеюсь теперь все стало понятно ))
 
Ответить
Сообщениеanvg,
Добрый день.
Изначально задача поставлена так: избавиться от товара посредством сюрприз-пакетов, в котором может быть все что угодно но 6 штук из каждой категории (продукты я пометил Кодами, а Категории - Product1...Product6). Это своего рода "кот в мешке" - мы не знаем что может быть внутри но знаем, что в каждом пакете может быть суммарно 6 категорий продуктов (например, в одном пакете уместили 1 хлеб, 1 яблоко, 1 банан, 1 кружку, 1 компас, 1 наручные часы и таких пактов несколько тысяч). Мы смотрим на объем товара и прикидываем что всего товара хватит на например 70 000 пакетов. И эти пакеты мы раскидываем по вариантам. Почему по вариантам? потому что одного варианта пакета может не хватить так как каждого товара разное количество.
Почему файл сделан таким образом? - потому что сборочная линия видит сколько нужно пакетов и сколько в тот или иной вариант положить продуктов разных кодов.
Пример: в файле 9501 продуктов с кодом 4065 категории Product1, 9382 продуктов с кодом 5454 категории Product2, 9319 продуктов с кодом 7462 категории Product3, 9643 продуктов с кодом 2950 категории Product4, 9966 продуктов с кодом 9171 категории Product5 и 9584 продуктов с кодом 8504 категории Product6.
Я беру минимум из этих цифр - 9319 штук кода 7462 (в файле округлял до 9000) и начинаю формировать первый вариант пакета в котором будет 9319 продуктов из каждой категории. Ага, код с продуктом 7462 закончился, но вот продуктов с другими кодами остались остатки, например продукта с кодом 5454 осталось 9382 - 9319 = 63 штуки. Так вот из этих 63 штук я ищу другие продукты с таким же количеством, но опять же из разных категорий, и формирую следующий вариант пакета. И так далее пока не кончится товар, понятное дело что останутся излишки которые в равных долях не уместить в пакет, но в реальности куда больше объема товара и важно начинать с больших объемов а излишки из десятков штук можно сформировать вручную или дождаться пополнения товара. Важно чтобы в каждом пакете, повторюсь их может быть несколько тысяч, было по одной штуке продукта из каждой категории, то есть как в примере приведенном выше - 1 хлеб, 1 яблоко, 1 банан, 1 кружку, 1 компас, 1 наручные часы). Надеюсь теперь все стало понятно ))

Автор - audrey
Дата добавления - 25.04.2018 в 11:34
anvg Дата: Среда, 25.04.2018, 16:19 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Несколько стало по понятнее, только тогда зачем количество по категориям а не количество по кодам упомянуто в стартовом сообщении, плюс, не очень удобная структура? Версия на Power Query - устроит?
 
Ответить
СообщениеНесколько стало по понятнее, только тогда зачем количество по категориям а не количество по кодам упомянуто в стартовом сообщении, плюс, не очень удобная структура? Версия на Power Query - устроит?

Автор - anvg
Дата добавления - 25.04.2018 в 16:19
audrey Дата: Четверг, 26.04.2018, 14:09 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
anvg,
К сожалению Power Query не подойдет.
Компания придерживается стандартных средств, то есть Microsoft Office.
А установить что-то дополнительно уйдет год-два, а сроки очень сжатые ((
Разрешается стандартный VBA с исходными данными на листе.
 
Ответить
Сообщениеanvg,
К сожалению Power Query не подойдет.
Компания придерживается стандартных средств, то есть Microsoft Office.
А установить что-то дополнительно уйдет год-два, а сроки очень сжатые ((
Разрешается стандартный VBA с исходными данными на листе.

Автор - audrey
Дата добавления - 26.04.2018 в 14:09
StoTisteg Дата: Четверг, 26.04.2018, 17:31 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
установить что-то дополнительно уйдет год-два

То есть примерно столько же, сколько у стандартного VBA на обсчёт этой задачи об упаковке рюкзака :)


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
установить что-то дополнительно уйдет год-два

То есть примерно столько же, сколько у стандартного VBA на обсчёт этой задачи об упаковке рюкзака :)

Автор - StoTisteg
Дата добавления - 26.04.2018 в 17:31
audrey Дата: Четверг, 26.04.2018, 17:41 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
StoTisteg,
В общем на Power Query не вариант однозначно.
 
Ответить
СообщениеStoTisteg,
В общем на Power Query не вариант однозначно.

Автор - audrey
Дата добавления - 26.04.2018 в 17:41
anvg Дата: Четверг, 26.04.2018, 18:27 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Разрешается стандартный VBA

на VBA не интересно, только время терять. Вот тут ваш коллега тоже по 6 расскладывает :)
Цитата
задачи об упаковке рюкзака
тут и жадного алгоритма достаточно.
Выложу всё же вариант на Power Query. Несколько лобовой. На VBA можно было бы сделать и поменьше вариантов пакетов.
P. S. А у ТС заявлена версия в профиле 2016. Power Query в нём уже часть Excel hands
К сообщению приложен файл: 7399300.xlsx (28.4 Kb)


Сообщение отредактировал anvg - Четверг, 26.04.2018, 21:19
 
Ответить
Сообщение
Разрешается стандартный VBA

на VBA не интересно, только время терять. Вот тут ваш коллега тоже по 6 расскладывает :)
Цитата
задачи об упаковке рюкзака
тут и жадного алгоритма достаточно.
Выложу всё же вариант на Power Query. Несколько лобовой. На VBA можно было бы сделать и поменьше вариантов пакетов.
P. S. А у ТС заявлена версия в профиле 2016. Power Query в нём уже часть Excel hands

Автор - anvg
Дата добавления - 26.04.2018 в 18:27
audrey Дата: Пятница, 27.04.2018, 19:30 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
anvg,
Спасибо большое!
 
Ответить
Сообщениеanvg,
Спасибо большое!

Автор - audrey
Дата добавления - 27.04.2018 в 19:30
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Собрать варианты пакетов с продуктами заданного списка (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!