Прошу помочь в написании. Сижу несколько дней в голову не приходит решение. Цель: Необходимо излишки товаров максимально перекрыть недогрузами. Условия: Товары имеют свой уникальный код, у которого первые четыре это группа - это первое условие, которое должно совпадать Колонка "критерий 2" сделал специально, так как там ещё много условий - я их пропишу сам без проблем(в данном случае это условие 2 будет буква "j", то есть тупо её пресутствие) Цена за штуку товара не должна отклонятся более или менее чем на 30%.
По итогу во второй вкладке("Излишки") должны подтянутся недогрузы по условиям выше и с результатом(колонками "код и кол-во товара"), и что самое для меня сложное - "на излишки могут быть несколько составляющих, то есть что бы перекрыть один излишек может быть от одного до примерно 10 товаров. Но не должно превышать кол-во этого излишка" Например 90 штук салата листового, к нему тянется 1 товар с кол-вом 50, а у второго товара недогруз всего 120, но надо подтянуть лишь 40, оставшееся кол-во от 120 может пойти к другим товарам.
Может я плохо изъясняюсь, задавайте непременно уточняющие вопросы! файл прилагаю
Заранее благодарен за помощь
Всех приветствую!
Прошу помочь в написании. Сижу несколько дней в голову не приходит решение. Цель: Необходимо излишки товаров максимально перекрыть недогрузами. Условия: Товары имеют свой уникальный код, у которого первые четыре это группа - это первое условие, которое должно совпадать Колонка "критерий 2" сделал специально, так как там ещё много условий - я их пропишу сам без проблем(в данном случае это условие 2 будет буква "j", то есть тупо её пресутствие) Цена за штуку товара не должна отклонятся более или менее чем на 30%.
По итогу во второй вкладке("Излишки") должны подтянутся недогрузы по условиям выше и с результатом(колонками "код и кол-во товара"), и что самое для меня сложное - "на излишки могут быть несколько составляющих, то есть что бы перекрыть один излишек может быть от одного до примерно 10 товаров. Но не должно превышать кол-во этого излишка" Например 90 штук салата листового, к нему тянется 1 товар с кол-вом 50, а у второго товара недогруз всего 120, но надо подтянуть лишь 40, оставшееся кол-во от 120 может пойти к другим товарам.
Может я плохо изъясняюсь, задавайте непременно уточняющие вопросы! файл прилагаю
2. Удовлетворение условию колонки «Критерий 2», если в строчке буква «j», то хорошо(тоже просто, но прошу сделать за меня, так как условий будет очень много, я их сам пропишу.)
3. Теперь самое сложное для меня: В оставшемся списке, поиск товара по цене за штуку с отклонением не больше 30%. Плюс приоритетом будет пользоваться товар с максимально подходящей ценой.
Поэтому к этому товару с кол-вом 120 штук, первым подойдёт товар «151303055969 Салат дуболистный зеленый 1шт», у которого недогруз 30 штук. Остаётся найти ещё 90штук. Смотрим дальше, следующий товар будет «151303305012 Салат листовой в горшочке (Россия) 1шт», у которого недрогруз 111 штук, но нам нужно лишь 90. Поэтому в итоге надо показать что искомый товар мы полностью перекрыли, первого товар забрали полностью, а второго забрали лишь часть. И всё это надо видеть в итоге. Ещё один момент: не обязательно всегда перекрываются все излишки
Как вариант предлагаю итог ввиде как во вложении, не обязательно чётко такой же, я немного шарю в екселе и смогу сам всё переделать.
Добрый день,
Этот файл будет некий шаблон с двумя вкладками, во вкладку «выгрузка» я вставляю все товары недогрузы и излишки, а во вторую вкладку «излишки» буду вставлять только излишки(тупо копипастом из первой вкладки), далее по построенным формулам подтягиваются товары колонками.
Заранее благодарю за помощь !
Прошу прощения вчера жутко не выспался поэтому написал какую-то кашу.
Давайте попробую объяснить сам процесс поэтапно и с примером
Для начала повторю цель: максимально убрать все излишки товаров, другими товарами, по ряду условий.
Этапы в порядке приоритета, на примере товара 151303370205 Салат листовой Фриллис 100г, у которого излишек 120 штук
2. Удовлетворение условию колонки «Критерий 2», если в строчке буква «j», то хорошо(тоже просто, но прошу сделать за меня, так как условий будет очень много, я их сам пропишу.)
3. Теперь самое сложное для меня: В оставшемся списке, поиск товара по цене за штуку с отклонением не больше 30%. Плюс приоритетом будет пользоваться товар с максимально подходящей ценой.
Поэтому к этому товару с кол-вом 120 штук, первым подойдёт товар «151303055969 Салат дуболистный зеленый 1шт», у которого недогруз 30 штук. Остаётся найти ещё 90штук. Смотрим дальше, следующий товар будет «151303305012 Салат листовой в горшочке (Россия) 1шт», у которого недрогруз 111 штук, но нам нужно лишь 90. Поэтому в итоге надо показать что искомый товар мы полностью перекрыли, первого товар забрали полностью, а второго забрали лишь часть. И всё это надо видеть в итоге. Ещё один момент: не обязательно всегда перекрываются все излишки
Как вариант предлагаю итог ввиде как во вложении, не обязательно чётко такой же, я немного шарю в екселе и смогу сам всё переделать.
Добрый день,
Этот файл будет некий шаблон с двумя вкладками, во вкладку «выгрузка» я вставляю все товары недогрузы и излишки, а во вторую вкладку «излишки» буду вставлять только излишки(тупо копипастом из первой вкладки), далее по построенным формулам подтягиваются товары колонками.
Фактически до конца докрутил, но формулы не оптимизированы и протягиваются только вниз. Замена идёт не более, чем тремя товарами и ограничена суммой основного товара. Мне кажется, что-то ещё не доработал, но пока не могу сообразить. Проверка на 30%:
Код
(ABS($A2-выгрузка!$A$2:$A$99)/$A2<30%)
Проверяйте. Автоматизировал выбор товара на лист излишки. Файл перезалил.
Фактически до конца докрутил, но формулы не оптимизированы и протягиваются только вниз. Замена идёт не более, чем тремя товарами и ограничена суммой основного товара. Мне кажется, что-то ещё не доработал, но пока не могу сообразить. Проверка на 30%:
Код
(ABS($A2-выгрузка!$A$2:$A$99)/$A2<30%)
Проверяйте. Автоматизировал выбор товара на лист излишки. Файл перезалил.Светлый
Подкорректировал, чтобы не выдавались товары при полной замене. Сделал универсальные копируемые и протягиваемые формулы, но они громоздкие и для больших массивов будут ещё больше тормозить.
Подкорректировал, чтобы не выдавались товары при полной замене. Сделал универсальные копируемые и протягиваемые формулы, но они громоздкие и для больших массивов будут ещё больше тормозить.Светлый
Работает, согласен долго грузится- много массивов, но некоторые массивы уберу ВПРом, побыстрее будет. В любом случае это быстрее, чем руками искать. Алгоритм в одном месте не верный. Отчёт пытается убрать недогрузы, пример: товар фрилис, к нему нашёл первый товар дуболистный 30 штук, остаётся найти ещё на 120-30=90, а второй пихает на 95 листового в горшочке, думаю потому что в другом месте тоже есть этот товар на 16 штук. То есть отчёт пытается убрать недогрузы, а нужно излишки. P.S. Блин спасибо, новые штуки нашёл, например ЛЕВБ- не понял чем отличается от ЛЕВСИМВ. ABS- это чаще тёмный лес )))
Работает, согласен долго грузится- много массивов, но некоторые массивы уберу ВПРом, побыстрее будет. В любом случае это быстрее, чем руками искать. Алгоритм в одном месте не верный. Отчёт пытается убрать недогрузы, пример: товар фрилис, к нему нашёл первый товар дуболистный 30 штук, остаётся найти ещё на 120-30=90, а второй пихает на 95 листового в горшочке, думаю потому что в другом месте тоже есть этот товар на 16 штук. То есть отчёт пытается убрать недогрузы, а нужно излишки. P.S. Блин спасибо, новые штуки нашёл, например ЛЕВБ- не понял чем отличается от ЛЕВСИМВ. ABS- это чаще тёмный лес )))visor
Если таблицы большие, надо диапазоны во всех формулах расширить. Подгружает на второй лист только с положительным количеством товара, а заменяет только из отрицательных. Если товар одинаковый в разных строках, воспринимает как разные. Для большего списка замен все формулы надо переделывать. Сейчас только три замены работают.
ABS - это абсолютное значение, т.е. всегда положительное.
Если таблицы большие, надо диапазоны во всех формулах расширить. Подгружает на второй лист только с положительным количеством товара, а заменяет только из отрицательных. Если товар одинаковый в разных строках, воспринимает как разные. Для большего списка замен все формулы надо переделывать. Сейчас только три замены работают.
Да, я сразу понял что тянет на второй лист только положительные. Сейчас вставил объём данных с работы и вставил для пробы, соответственно продлил формулы на одной м второй странице по 1500 и 2000 строк соответственно. Много раз повторяется один товар, который можно было бы перекрыть чутли не единожды(подсветил цветом тоыар, в поиске первого товара). Не работает правило цены 30%(подсветил пример строчкой). В некоторых местах тянет товар с ценой за штуку, но не тянет кол-во. Вижу что только под три товара заточено. Не проблема будем обрабатывать частями.
Да, я сразу понял что тянет на второй лист только положительные. Сейчас вставил объём данных с работы и вставил для пробы, соответственно продлил формулы на одной м второй странице по 1500 и 2000 строк соответственно. Много раз повторяется один товар, который можно было бы перекрыть чутли не единожды(подсветил цветом тоыар, в поиске первого товара). Не работает правило цены 30%(подсветил пример строчкой). В некоторых местах тянет товар с ценой за штуку, но не тянет кол-во. Вижу что только под три товара заточено. Не проблема будем обрабатывать частями.visor
Не увидел ограничений в 100кб. Сейчас высылают побольше данных. Если протянуть формулы, то полезут ошибки, которые описывал. Если я протяну в этом файле, то он увеличит размер семи кратно.и не смогу выслать.
Не увидел ограничений в 100кб. Сейчас высылают побольше данных. Если протянуть формулы, то полезут ошибки, которые описывал. Если я протяну в этом файле, то он увеличит размер семи кратно.и не смогу выслать.visor
Расширил до пяти товаров. Оставил 11 строк, чтобы файл загрузился. Последнюю можно протянуть сколько надо. Выгрузка может быть заполнена до 999 строки. Ошибок не обнаружено.
Расширил до пяти товаров. Оставил 11 строк, чтобы файл загрузился. Последнюю можно протянуть сколько надо. Выгрузка может быть заполнена до 999 строки. Ошибок не обнаружено.Светлый
Светлый, добрый день ! Могу попросить слегка изменить логику? Сейчас расчёт использованного остатка идёт от деления общей цены на цену найденной штуки. Вот высылают пример. Суть такова что: не полностью убрано кол-во, компенсирована финансовая часть, а мне надо схлопнуть кол-во
Кол-во всех найденных гвоздей это 276+1200+9=1485, а набрать надо 1280. То что цена будет не биться ну чёрт с ним, главное что мы убрали излишек кол-венный. Или по другому: надо найти товаров на кол-во не более 1280, или равное ему, согласно условий таких как: отклонение не более 30% цены на штуку, первым 4 цифрам кода и прочим условиям
Светлый, добрый день ! Могу попросить слегка изменить логику? Сейчас расчёт использованного остатка идёт от деления общей цены на цену найденной штуки. Вот высылают пример. Суть такова что: не полностью убрано кол-во, компенсирована финансовая часть, а мне надо схлопнуть кол-во
Кол-во всех найденных гвоздей это 276+1200+9=1485, а набрать надо 1280. То что цена будет не биться ну чёрт с ним, главное что мы убрали излишек кол-венный. Или по другому: надо найти товаров на кол-во не более 1280, или равное ему, согласно условий таких как: отклонение не более 30% цены на штуку, первым 4 цифрам кода и прочим условиямvisor