Подскажите, как мне "определить" три коэффициента, для расчета из пользовательской функции в ВБА. "Исходную" таблицу для определения этих трех коэффициентов я хочу оставить на одном из листов книги Экселя. Эта тема уже обсуждалась в другом разделе. Также "хотелось бы", чтобы использовалась, если будет в этом необходимость, стандартная функция СУММПРОИЗВ.
Подскажите, как мне "определить" три коэффициента, для расчета из пользовательской функции в ВБА. "Исходную" таблицу для определения этих трех коэффициентов я хочу оставить на одном из листов книги Экселя. Эта тема уже обсуждалась в другом разделе. Также "хотелось бы", чтобы использовалась, если будет в этом необходимость, стандартная функция СУММПРОИЗВ.Юрий_Нд
Сообщение отредактировал Юрий_Нд - Воскресенье, 11.06.2017, 22:19
Просто "функцию VBA", которая вам будет возвращать значения из "Таблицы" по задаваемым параметрам? Так а где и как эта функция будет применяться в самом коде VBA?
UDF (пользовательскую функцию), которую можно будет использовать как обычную функцию листа, подставляя в ячейки/формулы, по типу =УЗНАТЬ_КОЭФФИЦИЕНТ_ИЗ_ТАБЛИЦЫ1(K20;L20;"p"), и которая будет возвращать нужное значение из таблицы с данными? так для этого совершенно необязательно задействовать VBA, достаточно воспользоваться Именованными Формулами (и где и использовать, возможно, СУММПРОИЗВ()).
Макрос, который при нажатии на "большую зеленую кнопку" возьмет некий набор параметров и посчитает результат всей конечной формулы? Так мы не видим эту формулу (кроме непонятного вставленного рисунка, без комментариев, чему буковки там соответствуют значениям на листе здесь). Да и данных, по которым считать формулу, мы не видим - ведь для "макроса" будет принципиально, откуда он будет брать реальные данные, где они будут расположены у вас реально при использовании.
Так а что реально хочется получить-то?
Просто "функцию VBA", которая вам будет возвращать значения из "Таблицы" по задаваемым параметрам? Так а где и как эта функция будет применяться в самом коде VBA?
UDF (пользовательскую функцию), которую можно будет использовать как обычную функцию листа, подставляя в ячейки/формулы, по типу =УЗНАТЬ_КОЭФФИЦИЕНТ_ИЗ_ТАБЛИЦЫ1(K20;L20;"p"), и которая будет возвращать нужное значение из таблицы с данными? так для этого совершенно необязательно задействовать VBA, достаточно воспользоваться Именованными Формулами (и где и использовать, возможно, СУММПРОИЗВ()).
Макрос, который при нажатии на "большую зеленую кнопку" возьмет некий набор параметров и посчитает результат всей конечной формулы? Так мы не видим эту формулу (кроме непонятного вставленного рисунка, без комментариев, чему буковки там соответствуют значениям на листе здесь). Да и данных, по которым считать формулу, мы не видим - ведь для "макроса" будет принципиально, откуда он будет брать реальные данные, где они будут расположены у вас реально при использовании.AndreTM
Skype: andre.tm.007 Donate: Qiwi: 9517375010
Сообщение отредактировал AndreTM - Воскресенье, 11.06.2017, 23:04
AndreTM, Спасибо, что откликнулись. Конечно же, если бы вся задача состояла в том, чтобы "посчитать формулу" я бы не "заморачивался" бы с макросами. Но дело в том, что некоторые искомые значения, входят непосредственно в "формулу для расчета". Поэтому, мне необходимо решать инженерную задачу с итерациями, т.е с помощью метода последовательных приближений. Мне не хотелось бы "садиться Вам на шею и перекладывать мои задачи на Ваши плечи". Как "писать макросы, я в принципе" знаю. Можно было бы "просто взять эти коэффициенты в макрос" из строчки Экселя. Но я "боюсь", что в результате расчета эти коэффициенты "могут перекочевать в другой диапазон". Именно поэтому и обратился за помощью. А формула следующая... Вы можете "дополнительные" исходные данные разместить в любой строчке. Но думаю, что с этой частью задачи я справлюсь сам.
AndreTM, Спасибо, что откликнулись. Конечно же, если бы вся задача состояла в том, чтобы "посчитать формулу" я бы не "заморачивался" бы с макросами. Но дело в том, что некоторые искомые значения, входят непосредственно в "формулу для расчета". Поэтому, мне необходимо решать инженерную задачу с итерациями, т.е с помощью метода последовательных приближений. Мне не хотелось бы "садиться Вам на шею и перекладывать мои задачи на Ваши плечи". Как "писать макросы, я в принципе" знаю. Можно было бы "просто взять эти коэффициенты в макрос" из строчки Экселя. Но я "боюсь", что в результате расчета эти коэффициенты "могут перекочевать в другой диапазон". Именно поэтому и обратился за помощью. А формула следующая... Вы можете "дополнительные" исходные данные разместить в любой строчке. Но думаю, что с этой частью задачи я справлюсь сам.Юрий_Нд
Сообщение отредактировал Юрий_Нд - Понедельник, 12.06.2017, 00:53
Так я про что? Что всякие "дельта тэ", "пси" и прочее - нам неизвестны вообще. И если вы всё же задумали рещать "всю задачу" макросами - так и давайте уже переходить к самим макросам, включая то, как они там будут пытаться делать ваш подбор итерациями.
А находить значения нужных коэффициентов по табличке - это будет подзадача уже внутри вашей задачи, и в зависимости от того, как вы станете решать общую задачу - вполне возможно, что "подфункция подбора n, p ,c" будет выглядеть по-разному. Или вызываться по-разному. Возможно, этот "подбор" вообще можно будет целиком перенести в код (если у вас "табличка" так и останется статической, вы её больше менять не будете).
В любом случае, если вы не хотите упереться в производительность (ваша программа начнет считать "всего-то тысячу итераций" часов 10 ) - то не надо пытаться решать её "от частного к общему". Потому что ошибки на этапе планирования и использование не тех механизмов (например, подбор значения в функции листа, при этом с неотключенными пересчётами и отображениями, при этом прямо на листе в ячейках) - приведут только к тому, что вы сами же затормозите процесс пересчётов...
Так я про что? Что всякие "дельта тэ", "пси" и прочее - нам неизвестны вообще. И если вы всё же задумали рещать "всю задачу" макросами - так и давайте уже переходить к самим макросам, включая то, как они там будут пытаться делать ваш подбор итерациями.
А находить значения нужных коэффициентов по табличке - это будет подзадача уже внутри вашей задачи, и в зависимости от того, как вы станете решать общую задачу - вполне возможно, что "подфункция подбора n, p ,c" будет выглядеть по-разному. Или вызываться по-разному. Возможно, этот "подбор" вообще можно будет целиком перенести в код (если у вас "табличка" так и останется статической, вы её больше менять не будете).
В любом случае, если вы не хотите упереться в производительность (ваша программа начнет считать "всего-то тысячу итераций" часов 10 ) - то не надо пытаться решать её "от частного к общему". Потому что ошибки на этапе планирования и использование не тех механизмов (например, подбор значения в функции листа, при этом с неотключенными пересчётами и отображениями, при этом прямо на листе в ячейках) - приведут только к тому, что вы сами же затормозите процесс пересчётов...AndreTM
"Дельта тэ" принимается приближенно, а потом "уточняется" в результате расчетом по этой формуле. С другими коэффициентами проще. Они определяются однозначно
если вы всё же задумали рещать "всю задачу" макросами
Да, я планирую часть большой инженерной задачи сделать макросами, а "классическим" Экселем я хочу "проконтролировать процесс" и решить мою задачу "графически". ... Простите, на сегодня все, плохо соображаю, засыпаю... Спокойной ночи.
"Дельта тэ" принимается приближенно, а потом "уточняется" в результате расчетом по этой формуле. С другими коэффициентами проще. Они определяются однозначно
если вы всё же задумали рещать "всю задачу" макросами
Да, я планирую часть большой инженерной задачи сделать макросами, а "классическим" Экселем я хочу "проконтролировать процесс" и решить мою задачу "графически". ... Простите, на сегодня все, плохо соображаю, засыпаю... Спокойной ночи.Юрий_Нд