让Excel求解器使用自然数进行操作
我的工作手册有点复杂,但基本的问题可以用一个简单的例子来说明。
假设我在Excel中有5个单元格:A,B,C,D和E.
A = 0 B = 5 * AC = 0 D = 10 * C E = B + D
在Excel求解函数中,我select单元格E作为要最大化的目标,单元格A和C作为可变单元格。 此外,我添加了单元格E不能超过10的约束条件,以及单元格A和C必须是整数的第二个约束条件。
理想的解决scheme是单元格A中的值应为0,并且单元格C中的值应为10.然而,在此问题的更复杂版本中,Excel无法find可选解决scheme。
目前的公式看起来像我期望的Excel可以find正确的解决scheme,如果Excel只使用自然数来find最佳的解决scheme。 例如,Excel目前会查看A = 0.01和C = 9.99的结果。 相反,Excel应严格比较variablesselect的结果,如A = 1和C = 9。
如何使Excel求解器函数只能使用自然数字进行操作?
我build议你保持你的当前单元格,并在他们旁边创build一个镜像。 每个镜像单元格将等于原始单元格的圆angular版本。 即:RoundedA将有公式:
=ROUND(A,0)
然后当你进行数据分析时,求解这些单元格的圆形版本,其中变化的variables是“原始”单元格之一。
编辑如下所述,您可能需要“欺骗”数据validation来创build所需的值。
假设A1将是您的“testing”数据validation单元格。 B1是一个永久空白的单元格。 设置另一个单元格,比如C1,等于:
=randbetween(1,10)
这将创build1到10之间的随机整数。将您的“variables”单元设置为等于C10。 所以,你的可变单元格总是一个1和10之间的随机数(或者你可以设置“1”等于其他variables的最小值),而“10”等于其他variables的最大值。范围需要回答你的问题)。
然后,当你做数据validation,使其尝试获得A1 = TRUE。 通过弄清楚你的细胞的“testing”状况是什么。 就像“当X = 0时,我知道我所有的variables都是正确的”。 即将A1设置为:
=if(X=0,1,0)
然后通过更改B1(空白的,未提交的单元格)来进行数据validation,等待A1 = 1。这是否有意义? 它将把C1变成LOWVALUE和HIGHVALUE之间的随机循环variables,总是使用整数。 当A1 = 1(当某值X = 0时发生),数据validation将停止。 B1将会无用地旋转,直到数据validation发现一些东西(或者如果没有发现任何东西,它会在几百次尝试之后停止)。