Excel求解器(添加约束列的方法)
Excel Solver (Way to add column of Constraints)
我有一个 excel sheet,我在其中的一列中输入了所有限制条件。所有的约束都是简单的比较...ex =A1>=B1
有72个约束。求解器中有没有办法绕过输入所有 72 个约束条件?
例如,我可以在单元格 A74 中写出一个公式说 =IF(COUNTIF(A2:A73,"TRUE")<>72,0,1)
然后作为规划求解中的约束说 "A74 = 1"
?
我只是想找出一种方法来利用我的约束列,而不必将它们全部重新输入到规划求解中。谢谢!
专栏图片:
这可以用 VBA 来完成。这是一个例子:
SolverAdd CellRef:="$E", Relation:=1, FormulaText:="$E"
<= 是关系 1,>= 是关系 3。
因此,您可以为关系类型定义一个 int,为其他部分定义 2 个字符串,然后创建一个遍历单元格并将它们解析为 3 个部分的循环,使用 if-else 定义关系 int基于找到的符号。然后,如果您更改它们,您只需再次 运行 宏。您可能还想以以下方式启动您的宏:
SolverReset
这样它会清除现有的设置,否则你最终会得到很多重复项。
我有一个 excel sheet,我在其中的一列中输入了所有限制条件。所有的约束都是简单的比较...ex =A1>=B1
有72个约束。求解器中有没有办法绕过输入所有 72 个约束条件?
例如,我可以在单元格 A74 中写出一个公式说 =IF(COUNTIF(A2:A73,"TRUE")<>72,0,1)
然后作为规划求解中的约束说 "A74 = 1"
?
我只是想找出一种方法来利用我的约束列,而不必将它们全部重新输入到规划求解中。谢谢!
专栏图片:
这可以用 VBA 来完成。这是一个例子:
SolverAdd CellRef:="$E", Relation:=1, FormulaText:="$E"
<= 是关系 1,>= 是关系 3。
因此,您可以为关系类型定义一个 int,为其他部分定义 2 个字符串,然后创建一个遍历单元格并将它们解析为 3 个部分的循环,使用 if-else 定义关系 int基于找到的符号。然后,如果您更改它们,您只需再次 运行 宏。您可能还想以以下方式启动您的宏:
SolverReset
这样它会清除现有的设置,否则你最终会得到很多重复项。