В файле Пример объяснение задачи. Кратко: нужно создать несколько циклов формулами и подобрать значение с пошаговым приближением к нужному числу. С помощью VBA эта задача решается легко.
Здравствуйте!
В файле Пример объяснение задачи. Кратко: нужно создать несколько циклов формулами и подобрать значение с пошаговым приближением к нужному числу. С помощью VBA эта задача решается легко.Shimaruka
Да логика правильная: в ячейках Е3:Е8 значения должны уменьшаться, до тех пор пока хотя бы в одной ячейке этого диапазона будет больше значения в ячейке Н9. При этом значение в ячейке Н13 увеличивается с шагом 1 (в данном случае). После каждого шага производится сравнение ячеек Е3:Е8 в ячейкой Н9. Ваша формула не работает (у меня не получилось), она выдает 11 и останавливается. Формула должна сама добавлять значение к ячейке Н13, поскольку это и есть цель расчета.
bmv98rus
Да логика правильная: в ячейках Е3:Е8 значения должны уменьшаться, до тех пор пока хотя бы в одной ячейке этого диапазона будет больше значения в ячейке Н9. При этом значение в ячейке Н13 увеличивается с шагом 1 (в данном случае). После каждого шага производится сравнение ячеек Е3:Е8 в ячейкой Н9. Ваша формула не работает (у меня не получилось), она выдает 11 и останавливается. Формула должна сама добавлять значение к ячейке Н13, поскольку это и есть цель расчета.Shimaruka
По крайне мере, цикл в VBA работает именно так: 1. Пробегает все ячейки Е и если хотя-бы в одной из них значение больше Н9, то к ячейке Н13 прибавляется значение ячейки Н11 и так до тех пор, пока во всех ячейках Е не будет меньше или равно ячейке Н9.
По крайне мере, цикл в VBA работает именно так: 1. Пробегает все ячейки Е и если хотя-бы в одной из них значение больше Н9, то к ячейке Н13 прибавляется значение ячейки Н11 и так до тех пор, пока во всех ячейках Е не будет меньше или равно ячейке Н9.Shimaruka
Да логика правильная: в ячейках Е3:Е8 значения должны уменьшаться,
Пардон, не корректно прочел
Цитата
2. Если Е3 больше Н9, то прибавляем к ячейке Н13 значение ячейки Н11.
Тут можно или поиск решения подключать, или накидать модель с включенным режимом итераций.
Код
=D3/IF($H$13=0;1;$H$13)
и в h13
Код
=H13+(SUMPRODUCT(--(E3:E8>H9))>0)*H11
С учетом того что для данного примера будет значение >250, то количество итераций в настройках должно быть больше этого. + точность соответвующую. Далее можно оптимизировать с шагом, который может быть умножен на целое число в зависисмости от максимальной разницы значений.... Это позволит быстрее находить решение.
НО с учетом того что меняются все значения в зависисмости от одного, то формула Лены решит это. для разнообразия не массивные
Да логика правильная: в ячейках Е3:Е8 значения должны уменьшаться,
Пардон, не корректно прочел
Цитата
2. Если Е3 больше Н9, то прибавляем к ячейке Н13 значение ячейки Н11.
Тут можно или поиск решения подключать, или накидать модель с включенным режимом итераций.
Код
=D3/IF($H$13=0;1;$H$13)
и в h13
Код
=H13+(SUMPRODUCT(--(E3:E8>H9))>0)*H11
С учетом того что для данного примера будет значение >250, то количество итераций в настройках должно быть больше этого. + точность соответвующую. Далее можно оптимизировать с шагом, который может быть умножен на целое число в зависисмости от максимальной разницы значений.... Это позволит быстрее находить решение.
НО с учетом того что меняются все значения в зависисмости от одного, то формула Лены решит это. для разнообразия не массивные
Ваша формула отлично работает, большое спасибо. Но для полного счастья нужно рассчитать значения других ячеек, количество которых может быть произвольным. Во вложении усложненный Пример. Буду очень признателен за любой ответ. Спасибо.
Pelena
Ваша формула отлично работает, большое спасибо. Но для полного счастья нужно рассчитать значения других ячеек, количество которых может быть произвольным. Во вложении усложненный Пример. Буду очень признателен за любой ответ. Спасибо.Shimaruka