Existe uma maneira de automatizar fórmulas de busca de meta no Excel?

2

Eu tenho que usar a seguinte fórmula:

=POWER(b,(d+1))-N*(b-1)-1

Eu preciso encontrar b, então toda vez que eu executar isso eu tenho que selecionar os valores para d e N, e então meta procurar fazer b o valor calculado. O problema é que eu tenho cerca de 1500 entradas para calcular b para. Existe uma maneira de automatizar o cálculo? Da mesma forma que arrastamos os valores de entrada para funções mais simples?

    
por efficiencyIsBliss 06.02.2011 / 00:31

2 respostas

1

Primeiro , seu último '1' precisa ser um 'b', como alguns outros mencionaram.

Segundo , descobri que o Objetivo de Busca realmente não funciona muito bem (se você inserir o 'b'), porque 1 sempre resolverá essa equação. Isso significa que a Busca de Meta não irá realmente resolvê-lo, já que não há como restringir um mínimo no valor, MAS se você quer apenas automatizar o Apanhador de Metas, há este suplemento caro .

Terceiro , A maneira de o VBA executar o GoalSeek é

Sheets("Sheet1").Range("A1").GoalSeek Goal:=0, ChangingCell:=Sheets("Sheet1").Range("B1")

em que aqui "A1" seria a célula com a fórmula e "B1" seria a célula vazia que terminaria com o valor "b". Então você poderia criar um loop para ele e automatizar dessa maneira.

Quarto , A melhor maneira é usar o Solver no VBA. Ative o Suplemento do Solver e, em seguida, no VBA, ative a referência do Solver. Use o seguinte código como exemplo, em que a coluna D tem a fórmula, a coluna C é onde 'b' terminará e $ H $ 1 é o valor 2, para que não seja resolvido com b = 1:

Public Sub SolveGeometric()

Dim i As Integer

    For i = 2 To 3
        SolverReset
        SolverOk SetCell:="$D$" & i, MaxMinVal:=3, ValueOf:="0", _
            ByChange:="$C$" & i
        SolverAdd CellRef:="$C$" & i, Relation:=4  'keep it an integer
        SolverAdd CellRef:="$C$" & i, Relation:=3, FormulaText:="$H$1"
        ' $H$1 = 2, so that it won't find 1 which always solves the equation
        SolverSolve userFinish:=True
    Next i

End Sub
    
por 04.06.2011 / 10:46
0

Eu sugiro que você procure uma "série geométrica" para poder verificar a fórmula que está tentando resolver.

Uma ideia que vem à mente (e pode ou não funcionar com eficácia ou de jeito nenhum) para lidar com a solução do problema é usar o suplemento "solver" no Excel. Eu teria colunas de valores para N, d e inicial b. um para os valores N calculados e um para o quadrado da diferença entre os valores N calculados e desejados.

Some os quadrados das diferenças em N valores e use o solver para configurá-lo para um valor de 0 alterando as células na coluna de valores b.

    
por 06.02.2011 / 12:06