Excel解算器 - 防止命名相同的结果

时间:2017-01-15 03:43:09

标签: excel solver

这可能听起来有点奇怪,也许我只是在这个问题上通过树木错过了森林,但有没有办法强制Excel解算器只返回结果的一个实例?作为一个简短的例子,想象一下我们对各种物体(颜色,动物和形状)的可爱性有一些结果。我们希望求解器从此列表中返回三个最受欢迎的对象。

红色(400)    狗(120)    圈(100)    红色(400)    猫(90)    广场(75)    蓝色(90)    马(60)    三角(70)    绿色(80)    蛇(30)    矩形(40)    黄色(40)    兔子(20)    五角大楼(15)

当然,在这个例子中简化了问题。基本上,我的问题出现在我想要每种类型中的一种,即红色,狗和圆形但我继续得到红色,红色(再次)和狗,因为总数更高。我想定义一种方法来阻止Solver返回两个名为相同的值。我似乎无法弄明白,谷歌似乎也没有产生任何可行的回应。

1 个答案:

答案 0 :(得分:1)

目前还不清楚你的数据是如何设置的,这可能会影响你如何设置解算器问题,但这里有一种方法(nb - 只有你有200个或更少的值可供选择时这个方法才有效)。

  1. 为“类别”创建列A.这将具有诸如“Color”,“Animal”和“Shape”之类的值。
  2. B列将用于“类型”,并包含您提供的信息。 (例如,狗,猫,......红色,蓝色,......圆形,方形......)
  3. C列是B列中显示的类型的值或分数,同样是您提供的信息。
  4. D列包含Solver将操作的字段,我们称之为“已选择”。选中将是0或1。
  5. E栏是选择的结果,一个简单的计算,=C2*D2,已填写。
  6. 使单元格H2成为E列的总和。这将是您对Solver的目标。
  7. 使G3到G5中的“类别”(颜色,动物,形状)中的值。
  8. 使H3至H5成为每个类别中的总选定值。这是=SUMIF($A$2:$A$16,"="&G3,$D$2:$D$16)填写的。
  9. 工作簿看起来像这样......

    enter image description here

    ...从这里,您可以使用以下内容设置Solver ......

    1. 设定目标:$H$2
    2. To:设置为Max。 (即你正在寻找最喜欢的)
    3. 通过更改可变单元格:设置为$D$2:$D$16
    4. 受制约约束:有四个条目。 $D$2:$D$16 = binary; $H$3 = 1; $H$4 = 1; $H$5 = 1
    5. 选择解决方法:设置为进化。您可以使用GRG非线性,但需要更长时间。
    6. 对话框看起来像这样......

      enter image description here

      ...符合以下结果,符合您的标准......

      enter image description here