我必须使用以下公式:
=POWER(b,(d+1))-N*(b-1)-1
我需要找到 b,所以每次运行这个程序时,我都必须选择 d 和 N 的值,然后通过目标搜索使 b 成为计算值。问题是,我有大约 1500 个条目需要计算 b。有没有办法自动计算?就像我们拖动输入值以完成更简单的函数一样?
答案1
第一的, 正如其他人所提到的,您的最后一个“1”需要是“b”。
第二,我发现目标搜索效果确实不太好(如果你代入“b”),因为 1 总是可以解这个方程。这意味着目标搜索实际上无法解决它,因为没有办法限制值的最小值,但如果你只是想自动化目标搜索,那么这个昂贵的插件。
第三,运行 GoalSeek 的 VBA 方法是
表格(“Sheet1”)。范围(“A1”)。GoalSeek 目标:=0,ChangingCell:=表格(“Sheet1”)。范围(“B1”)
其中“A1”是包含公式的单元格,“B1”是最终结果为“b”值的空单元格。因此,您可以为其创建一个循环并以此方式实现自动化。
第四,最好的方法是使用 VBA 中的 Solver。启用 Solver 插件,然后在 VBA 中启用 Solver 引用。使用以下代码作为示例,其中 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
答案2
我建议您查找一下“几何级数”是什么,以便您可以检查您要解决的公式。
解决您的问题时想到的一个想法(可能有效也可能无效,甚至根本不起作用)是使用 Excel 中的“求解器”插件。我将有 N、d 和初始 b 的值列。一列用于计算出的 N 值,一列用于计算出的 N 值与期望的 N 值之差的平方。
对 N 值差异的平方求和,并使用求解器通过更改 b 值列中的单元格将其设置为 0 值。