让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发现一些东西(或者如果没有发现任何东西,它会在几百次尝试之后停止)。