次の式を使用する必要があります。
= POWER(b、(d + 1))-N *(b-1)-1
Bを見つける必要があるので、これを実行するたびに、dとNの値を選択する必要があります。次に、ゴールシークでbを計算値にします。問題は、bを計算するためのエントリが約1500あることです。計算を自動化する方法はありますか?より単純な関数の入力値をドラッグする方法のように?
First、最後の「1」は「b」である必要があります。
Second、1は常にこの方程式を解くので、ゴールシークは実際にはあまりうまく機能しないことがわかりました(「b」をサブする場合)。これは、値の最小値を制約する方法がないため、ゴールシークが実際にそれを解決しないことを意味しますが、ゴールシーカーを自動化するだけの場合は、 この高価なアドイン があります。
3番目、ゴールシークを実行するVBAの方法は
Sheets( "Sheet1")。Range( "A1")。GoalSeekゴール:= 0、ChangingCell:= Sheets( "Sheet1")。Range( "B1")
ここで、「A1」は数式を含むセルであり、「B1」は「b」値で終わる空のセルです。したがって、そのループを作成して、そのように自動化することができます。
4番目、最良の方法はVBAでソルバーを使用することです。ソルバーアドインを有効にしてから、VBAでソルバー参照を有効にします。例として次のコードを使用します。ここで、D列には式があり、C列は「b」が終わる場所であり、$ H $ 1は値2であるため、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
解こうとしている式を確認できるように、「等比数列」とは何かを調べることをお勧めします。
問題の解決に対処するために頭に浮かぶ(そして効果的に機能する場合と機能しない場合がある)1つのアイデアは、Excelの「ソルバー」アドインを使用することです。 N、d、および初期bの値の列があります。 1つは計算されたN値用で、もう1つは計算されたN値と目的のN値の差の2乗用です。
N値の差の二乗を合計し、ソルバーを使用して、b値の列のセルを変更して値を0に設定します。