Excel解算器(添加约束列的方法)

时间:2018-01-22 19:04:20

标签: excel constraints linear-programming solver

我有一张excel表,我在列中输入了所有约束。所有约束都是简单的比较... ex =A1>=B1有72个约束。在求解器中是否有办法绕过输入所有72个约束? 例如,我可以在单元格A74中写出一个公式=IF(COUNTIF(A2:A73,"TRUE")<>72,0,1),然后作为Solver中的约束说"A74 = 1"

我只想找到一种方法来利用我的约束列,而无需将它们全部重新输入到Solver中。谢谢!

列的图片: enter image description here

1 个答案:

答案 0 :(得分:1)

这可以通过VBA完成。这是一个例子:

SolverAdd CellRef:="$E$22", Relation:=1, FormulaText:="$E$24"

&lt; =是关系1,&gt; =是关系3。

所以你可以为关系类型定义一个int,为其他部分定义2个字符串,然后创建一个遍历单元格并将它们解析为3个部分的循环,使用if-else定义关系int基于找到哪个符号。然后,如果你更改它们,你只需再次运行宏。您可能还想通过以下方式启动宏:

SolverReset

以便清除现有设置,否则最终会出现大量重复。