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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск оптимального решения - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск оптимального решения (Макросы/Sub)
Поиск оптимального решения
fanat1k90 Дата: Пятница, 27.03.2020, 09:48 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
подскажите, нужно написать макрос поиска оптимального решения.
нужно подобрать значения в желтых столбцах таким образом, чтобы значения в зеленом столбце были максимальны.
При этом соблюдались условия:
значения в 15 столбце должны быть больше либо равны 1, но меньше либо равны 12, должны быть целыми числами
значения в 16 столбце должны быть больше либо равны 2, но меньше либо равны 13, должны быть целыми числами
значения в 23 столбце должны быть больше либо равны 0, но меньше либо равны 0,33

нужно чтобы макрос прошелся по всем строчкам с 4 по 37.
я написал такой макрос, но в нем ошибки:
[vba]
Код
For i = 4 To 37
SolverOk SetCell:=Cells(i, 25), MaxMinVal:=1, ValueOf:=0, ByChange:=Range(cell(i, 15), cell(i, 16)), _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:=Cells(i, 15), Relation:=3, FormulaText:="1"
SolverAdd CellRef:=Cells(i, 16), Relation:=3, FormulaText:="2"
SolverAdd CellRef:=Cells(i, 15), Relation:=1, FormulaText:="12"
SolverAdd CellRef:=Cells(i, 16), Relation:=1, FormulaText:="13"
SolverAdd CellRef:=Cells(i, 23), Relation:=1, FormulaText:="0,33"
SolverSolve
End Sub
[/vba]

Может быть это можно сделать не через Solver. Очень надеюсь на помощь.
заранее огромное спасибо!
К сообщению приложен файл: 3081780.xlsm(22.0 Kb)


Сообщение отредактировал fanat1k90 - Пятница, 27.03.2020, 10:39
 
Ответить
СообщениеДобрый день!
подскажите, нужно написать макрос поиска оптимального решения.
нужно подобрать значения в желтых столбцах таким образом, чтобы значения в зеленом столбце были максимальны.
При этом соблюдались условия:
значения в 15 столбце должны быть больше либо равны 1, но меньше либо равны 12, должны быть целыми числами
значения в 16 столбце должны быть больше либо равны 2, но меньше либо равны 13, должны быть целыми числами
значения в 23 столбце должны быть больше либо равны 0, но меньше либо равны 0,33

нужно чтобы макрос прошелся по всем строчкам с 4 по 37.
я написал такой макрос, но в нем ошибки:
[vba]
Код
For i = 4 To 37
SolverOk SetCell:=Cells(i, 25), MaxMinVal:=1, ValueOf:=0, ByChange:=Range(cell(i, 15), cell(i, 16)), _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:=Cells(i, 15), Relation:=3, FormulaText:="1"
SolverAdd CellRef:=Cells(i, 16), Relation:=3, FormulaText:="2"
SolverAdd CellRef:=Cells(i, 15), Relation:=1, FormulaText:="12"
SolverAdd CellRef:=Cells(i, 16), Relation:=1, FormulaText:="13"
SolverAdd CellRef:=Cells(i, 23), Relation:=1, FormulaText:="0,33"
SolverSolve
End Sub
[/vba]

Может быть это можно сделать не через Solver. Очень надеюсь на помощь.
заранее огромное спасибо!

Автор - fanat1k90
Дата добавления - 27.03.2020 в 09:48
китин Дата: Пятница, 27.03.2020, 10:27 | Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 6319
Репутация: 970 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
- Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538
 
Ответить
Сообщение- Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - китин
Дата добавления - 27.03.2020 в 10:27
Pelena Дата: Пятница, 27.03.2020, 12:10 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16783
Репутация: 3621 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
Слишком сложные зависимости между изменяемыми ячейками и столбцом 23, поэтому приходится запускать эволюционный метод, а это всегда долго. У меня крутил минут 15.
Возможно простым перебором значений в макросе будет даже быстрее, если только понять зависимость целевой ячейки от изменяемых данных.
Пока так получилось через Поиск решения
К сообщению приложен файл: 2410602.xlsm(24.9 Kb)


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеСлишком сложные зависимости между изменяемыми ячейками и столбцом 23, поэтому приходится запускать эволюционный метод, а это всегда долго. У меня крутил минут 15.
Возможно простым перебором значений в макросе будет даже быстрее, если только понять зависимость целевой ячейки от изменяемых данных.
Пока так получилось через Поиск решения

Автор - Pelena
Дата добавления - 27.03.2020 в 12:10
fanat1k90 Дата: Пятница, 27.03.2020, 12:23 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Слишком сложные зависимости между изменяемыми ячейками и столбцом 23, поэтому приходится запускать эволюционный метод, а это всегда долго. У меня крутил минут 15.
Возможно простым перебором значений в макросе будет даже быстрее, если только понять зависимость целевой ячейки от изменяемых данных.
Пока так получилось через Поиск решения


Суть задачи - определить по каждой строке промежуток значений таким образом, чтобы их коэффициант вариации не превышал 33% и в этот промежуток попало максимальное количество значений.
У меня может быть около 400 строк и 40 столбцов для вычислений, вручную это займет кучу времени %)


Сообщение отредактировал fanat1k90 - Пятница, 27.03.2020, 12:24
 
Ответить
Сообщение
Слишком сложные зависимости между изменяемыми ячейками и столбцом 23, поэтому приходится запускать эволюционный метод, а это всегда долго. У меня крутил минут 15.
Возможно простым перебором значений в макросе будет даже быстрее, если только понять зависимость целевой ячейки от изменяемых данных.
Пока так получилось через Поиск решения


Суть задачи - определить по каждой строке промежуток значений таким образом, чтобы их коэффициант вариации не превышал 33% и в этот промежуток попало максимальное количество значений.
У меня может быть около 400 строк и 40 столбцов для вычислений, вручную это займет кучу времени %)

Автор - fanat1k90
Дата добавления - 27.03.2020 в 12:23
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Поиск оптимального решения (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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