Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 След.
RSS
Избушка формулистов-3, не для вопросов, но для формульных задач
 
Цитата
MCH написал:
Решение через 36-ричную систему счисления
Порядок с 10 строки не соблюдается.
 
Не обратил внимания, но данный способ тоже имеет право на применение.
Выборка происходит всех элементов, но в другом порядке
Возможно пригодится где нибудь

исправленная, но более длинная версия, можно сделать и универсально:
Код
=ДВССЫЛ(ОСНОВАНИЕ(НАИМЕНЬШИЙ(ЕСЛИ(A$4:D$12<>"";ДЕС({"A";"B";"C";"D"}&ТЕКСТ(СТРОКА(A$4:D$12);"00");36));СТРОКА(A1));36))
Изменено: MCH - 03.06.2019 18:22:32
 
Цитата
MCH написал:
Исходная задача в "Избушке" датирована 2010 годом
не обратил внимания... супер!
F1 творит чудеса
 
Попробуйте решить задачку формулой так. чтобы она была устойчива к изменению входящих условий (объём спроса, длительность операций, цена ресурсов, общехозяйственные расходы и т.п.) :)
 
У меня получилась формула 160 знаков. Изюма никакого не обнаружил. Вопрос НЕ для Избушки
*Да, решение $300.
Изменено: Светлый - 12.09.2019 07:50:12
 
Цитата
Светлый написал: *Да, решение $300.
Решал через "Поиск решения": P = 100, Q = 30, прибыль = 300

Ну изюм, наверное, в ограничении в трудозатратах, чтобы каждый работник не перерабатывал.
У меня в Excel "Поиск решения" начал сбоить, когда я поставил для работника B следующие параметры: для детали 2 время 10 мин, для детали 3 - время 20 мин.
При этом формула считает верно, возможно не правильно сделал модель для поиска решения.

Сделал мат. модель и универсальную формулу, которая корректно считает максимальную прибыль.
Т.к. решение "в лоб", то формула получилась большая, подумаю, как сократить
 
Цитата
MCH написал: подумаю, как сократить
Всё-таки зацепила задачка.
Раз примера нет, данные непонятно из каких ячеек брать, написал голую формулу. С учётом конкретной постановки задачи, конкретной схемы производства использовал в формуле константы для времени и стоимости. Формула 80 знаков. Если условия изменить, то формула может сильно измениться вплоть до 198 знаков. Для определения количеств P и Q формула растёт и потребуются ещё две формулы для их выковыривания.
 
Цитата
Светлый написал: Формула 80 знаков.
Ну у меня возможно другой алгоритм, формула с константами получается больше 100 знаков, а универсальная переваливает за 300
Скрытый текст
 
Цитата
MCH написал: возможно другой алгоритм
У меня алгоритм такой же, только без ЕСЛИ и все константы уже посчитаны, вплоть до вместо (xxx-1)*15 делаю xxx*15-15 , а последние вычитаемые просуммированы и вынесены за <=. И строки только двухзначные.
 
максимальный доход 300 (Р=100, Q=30)
формула массива 150 знаков:
Код
=МАКС(СТОЛБЕЦ(A1:ИНДЕКС(1:1;C1))*(B9-СУММ(B7:C8))+МИН(E1;МИН(ЦЕЛОЕ((A1-СТОЛБЕЦ(A1:ИНДЕКС(1:1;C1))*(B3:B6+C3:C6))/(C3:C6+D3:D6))))*(D9-СУММ(C7:D8)))-F1
отвечает на вопрос в ТЗ каков возможен максимальный доход, но не отвечает на вопрос сколько каких изделий изготовить
формула,, которая считает сколько нужно выпустить изделий Р - чуть длиннее 300 знаков
формула, которая считает количество изделий Q - 57 знаков
)
если в формуле учесть не только обьем рынка (100 и 50) но и производственные возможности, в данном случае 160 и 80 шт., то первая формула полагаю дотянется до длинны в 200 символов.
Изменено: Ігор Гончаренко - 17.09.2019 07:32:40
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Раз заготовки-примера никакого не было, у всех данные располагаются по-разному. Соревнования (тем более с автором   ) не получилось. Выкладываю свои наработки.
Всё сокращено донельзя. Решение только для конкретного этого примера. 80 символов:
Код
=МАКС((СТОЛБЕЦ(A:CW)+СТРОКА(1:51)*2<164)*(СТОЛБЕЦ(A:CW)*45+СТРОКА(1:51)*60))-6105
Универсальная формула, учитывающая ограничения по каждому работнику, цены, затраты, спрос. 280 знаков:
Код
=МАКС((СТОЛБЕЦ(A:PW)<E3+2)*(СТРОКА(1:800)<E4+2)*(СТОЛБЕЦ(A:PW)*G3-G3+СТРОКА(1:800)*G4-G4<2401)*(СТОЛБЕЦ(A:PW)*H3-H3+СТРОКА(1:800)*H4-H4<2401)*(СТОЛБЕЦ(A:PW)*I3-I3+СТРОКА(1:800)*I4-I4<2401)*(СТОЛБЕЦ(A:PW)*J3-J3+СТРОКА(1:800)*J4-J4<2401)*(СТОЛБЕЦ(A:PW)*K3-K3+СТРОКА(1:800)*K4-K4))-L3
 
Ну тогда и мое решение под задачу  - 82:
Код
=МАКС((СТОЛБЕЦ(A:CW)+СТРОКА(1:51)*2<=163)*(СТОЛБЕЦ(A:CW)*45+СТРОКА(1:51)*60))-6105

Остальные решения во вложении
 
Цитата
Zasypich написал: Сейчас в мыле. Позже дам + модификации к задаче.
На будущее - не нужно в Избушку с таким отношением и с такими задачами...
 
Цитата
написал:
Zasypich  написал: Сейчас в мыле. Позже дам + модификации к задаче.
Zasypich, можно посмотреть на Ваше решение задачи?
 
Я решаю довольно просто - делаю форму планирования ;)
Так, чтобы не терялась мысль и можно было задачу масштабировать.
Задачи всё решить одной формулой не ставлю.

Ещё раз извините, что неверно понял какого рода задачи вы здесь обсуждаете.
 
Цитата
Zasypich написал:
Я решаю довольно просто
На самом деле подобные производственные задачи необходимо решать именно таким способом:
Определяем узкое место и максимизируем прибыль (маржу) по этому узкому месту, либо пытаемся его "расшить"
В идеале лучше составить математическую модель для решения "Поиском решения", самые простые примеры можно решить перебором, если не получается, то подходим к задаче через узкие места.

Был на тренинге, где в виде бизнес-игры была производственная задача, очень похожая, но сложнее (условия во вложении):
В первом периоде ничего нельзя изменять
Во втором периоде можно обучать и мотивировать персонал изменяя скорость обработки продукции и время протекания процесса
В третьем периоде можно изменять все: брать в аренду новое оборудования, применять технологии, улучшать бизнес-процессы

Основное требование - максимизировать производительность на человека (отношение добавленной стоимости к численности) за три периода в целом.
У меня есть 3 варианта решения:
1. Максимальная прибыль (но не максимальная производительность)
2. Оптимальная производительность - на каждом периоде выбирается самое оптимальное решение
3. Совершенно не очевидное решение, но приводящее к максимальной производительности за 3 периода.

Мне так и не удалось построить единую математическую модель решающая через "Поиск решения", которая охватывала бы все 3 периода
Получалось локально для каждого периода находить оптимальное решение.
И перебором задача не решается - очень большая вариативность.
 
Всем привет!
Раз уж тема местная, запустим соревнование здесь. После длительной паузы.
Решение в 336 символов для суммы остатков (не для среднего, как по заданию) и для офиса >2003 уже выложено.
Есть решение 211 символов для офиса 2003. Найдётся ли короче?
* $ лишними не бывают, но убрав $ на больших границах массивов, сократил формулу до 204 символов.
Изменено: Светлый - 16.05.2021 14:00:50
 
Светлый, я и там то не понял что  в итоге нужно, а тут совсем нет описания.
По вопросам из тем форума, личку не читаю.
 
Файл из первого сообщения. Надо найти стоимость непроданного товара для каждого артикула, учитывая разную стоимость разных партий товара. Естественно, сначала продаются первые партии.
*Добавим общие ограничения:
Приход-расход до 99-й строки, количество партий любого товара пусть будет до 20.
Сбросил длину до 197 символов.
Изменено: Светлый - 16.05.2021 17:54:24
 
Цитата
Светлый написал:
Надо найти стоимость непроданного товара для каждого артикула
среднюю или остатки по партиям?
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
среднюю или остатки по партиям?
Цитата
Светлый написал:
для суммы остатков (не для среднего, как по заданию)
Сумму остатков.
Сократил до 175 154 144 знаков. Случайно обнаружил неизвестное мне раньше свойство одной из функций.
*Есть ещё куда сокращать...
Изменено: Светлый - 17.05.2021 15:08:44
 
Цитата
Светлый написал:
*Есть ещё куда сокращать...
даже не знаю, что там в формуле
у меня 231 222 216 и с ЕСЛИОШИБКА()
Изменено: MCH - 18.05.2021 08:03:36
 
Светлый, а Ваша формула с дробными количествами прихода/расхода работает?
 
Цитата
MCH написал:
с дробными количествами прихода/расхода
НЕ работает.
Цитата
MCH написал:
и с ЕСЛИОШИБКА()
Избавился во втором варианте формулы и больше не возвращался
Цитата
MCH написал:
даже не знаю, что там в формуле
Почти ничего не осталось от первоначальной. Как всегда бывает, вроде всё, больше ничего не сократить. А потом раз, и две-три функции заменил на одну. Перепробовал четыре разных подхода с возвратом к одному из предыдущих, но разной реализацией.
После 144 символов никакие идеи уже не приходят. 150 символов даже не массивная формула формула есть.
 
Есть формула на 216, которая подходит для дробных чисел (формула с ошибкой, буду исправлять) 217 и 182 165 158 133 для целых
можно подумать еще над сокращением
Изменено: MCH - 18.05.2021 11:43:27
 
Опять изменил алгоритм. Снизил до 139
 
Когда вскрываемся?
 
Я думал до понедельника. Или здесь быстрее?
Вдруг кто-нибудь ещё короче формулу предложит?
 
MCH, Светлый,  я пас, завал на работе, а вечером уже не думается, от слова совсем.
По вопросам из тем форума, личку не читаю.
 
Раз желающих больше нет, не будем тянуть резину в долгий ящик.
У меня формулы длиннее, вскрываюсь. Массивные, но если использовать СУММПРОИЗВ - обычные.
Код
=СУММ(ПРОСМОТР(СТРОКА(ДВССЫЛ(СУММЕСЛИ(Расход!B:B;B7;Расход!E:E)&":99"));СУММЕСЛИ(СМЕЩ(Приход!B$6;;;СТРОКА($1:93));B7;Приход!E$6);Приход!F$7:F99))
=СУММ(Приход!F$7:F99*{-1;1}*ТЕКСТ(СУММЕСЛИ(СМЕЩ(Приход!B$6;;;СТРОКА($1:93)+{0;1});B7;Приход!E$6)-СУММЕСЛИ(Расход!B:B;B7;Расход!E:E);"0;\0"))
Если в ТЕКСТ() использовать формат "0,000;\0", то должен работать с дробным количеством прихода/расхода. Не проверял на правильность.
* Про особенность СУММЕСЛИ(). Для третьего аргумента достаточно указать левый верхний угол массива. Весь диапазон указывать необязательно.
** Проверил с дробными. Правильно считает.
Изменено: Светлый - 19.05.2021 08:27:07
Страницы: Пред. 1 ... 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 След.
Наверх