Страницы: 1
RSS
Как сделать подбор неизвестного параметра в окошке значение?
 
Долго ломаю голову над этой проблемой, есть алгебраическая формула с одним неизвестным (теорема Виета).
при  смене габаритов детали должно меняться вычисляемое значение, но этого  не происходит, так как значение в окошке "Значение" панельки "Подбор  параметра" предустановлено, а должно быть вычисляемым по формуле.
Что и как мне написать, чтобы при смене габаритов, менялось и значение в ячейке T7
например при 713 на 496 получалось 81,21861118 ?
 
суть подбора параметра:
в общем случае у Вас есть сложная (нелинейная зависимость между х и у, у = f(x)
в Excel у Вас, допустим в В1 вычисляется эта функция, и зависит она от значения в А1
т.е. как только в А1 пишете любое тут же в В1 получаете значение функции при этом х
и тут Вы задаетесь вопросом а каково-же должно быть значение х, чтобы f(x) стало равным 100???
подставляете в А1 одно значение, другое, третье, 20-е (в зависимости от того сколько у Вас хватит терпения) а в В1 упорно не получается 100!
вот тогда и нужен инструмент Excel "подбор параметра"
открываете соотв. окно, заполняете 3 поля:
в поле Установить в ячейке пишете В1
в поле: Значение пишете число 100
в поле: Изменяя значение в ячейке пишете А1
Жмете Ок
и видите что при А1 равном столько-то в В1 получилось что-то очень близкое к желаемым 100
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
в модуль листа. формулу свою вместо примера подставите
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim x
    If Intersect(Target, Range("k2"), Range("m2")) Is Nothing Then
        x = Range("u3") / Range("o3") * 2 'тут ваша формула
        Range("T7").GoalSeek Goal:=x, ChangingCell:=Range("T1")
    End If
End Sub
 
Цитата
Александр Моторин написал:
в модуль листа. формулу свою вместо примера подставите
при нажатии в VB Run Sub выскакивает окошко создания нового макроса, который с этим
Код
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim x
   If Intersect(Target, Range("k2"), Range("m2")) Is Nothing Then
       x = Range("u3") / Range("o3") * 2 '=(-(U1+(-U2)+(-U3))-КОРЕНЬ(((U1+(-U2)+(-U3))^2-4*((-((x)^2-((-(U1+(-U2)+(-U3)))*x)))))))/2
       Range("T7").GoalSeek Goal:=x, ChangingCell:=Range("T1")
   End If
End Sub

не хочет иметь ничего общего.
Изменено: Sandmann - 09.04.2018 14:09:42
 
Sandmann, код следует оформлять соответствующим тегом: ищите такую кнопку и исправьте своё сообщение.
Александр Моторин, немного промазали с тегом ))
 
Цитата
Ігор Гончаренко написал:
и видите что при А1 равном столько-то в В1 получилось что-то очень близкое к желаемым 100
Но ведь я не знаю желаемого числа пока оно не вычислиться !  Получается ссылка на самое себя, а эксель так не работает.
Страницы: 1
Наверх