我有一张excel表,我在列中输入了所有约束。所有约束都是简单的比较... ex =A1>=B1
有72个约束。在求解器中是否有办法绕过输入所有72个约束?
例如,我可以在单元格A74中写出一个公式=IF(COUNTIF(A2:A73,"TRUE")<>72,0,1)
,然后作为Solver中的约束说"A74 = 1"
?
我只想找到一种方法来利用我的约束列,而无需将它们全部重新输入到Solver中。谢谢!
答案 0 :(得分:1)
这可以通过VBA完成。这是一个例子:
SolverAdd CellRef:="$E$22", Relation:=1, FormulaText:="$E$24"
&lt; =是关系1,&gt; =是关系3。
所以你可以为关系类型定义一个int,为其他部分定义2个字符串,然后创建一个遍历单元格并将它们解析为3个部分的循环,使用if-else定义关系int基于找到哪个符号。然后,如果你更改它们,你只需再次运行宏。您可能还想通过以下方式启动宏:
SolverReset
以便清除现有设置,否则最终会出现大量重复。