如何获得不同的细胞群,每个细胞群加起来一定数量

时间:2016-10-22 20:00:58

标签: excel solver

我有一个excel文件,其中有一列包含代表文件大小的数字,每个数字都是浮点数,最大小数位数为2(例如:23.04)。总细胞数是(277个细胞)。我想自动将加起来( 1000 )或尽可能接近的细胞分组到该数字(1000)。所有单元格的总和是(5739.49)所以, 应该有(4)个单元格组 ,每个加起来为(1000)和 最后一个(第5组)没关系 它加起来多少。现在:

  • 我知道这可以通过excel为每个组使用“ THE SOLVER ”解决但我是 不确定我应该使用什么约束以及哪种解决方法(即单纯形,GRG非线性或进化)方法,因为我不熟悉它

提前谢谢你

1 个答案:

答案 0 :(得分:1)

正如我在评论中提到的,Excel中的标准求解器的决策变量的最大限制为200.

此示例仅限于200个变量 - 如果您有高级解算器,则可以扩展解决方案。这是使用Excel 2016完成的。

工作表设置

  1. A列包含尺寸数据。
  2. B列包含" Group" A列中的每个成员都属于。它最初使用公式=RANDBETWEEN(1,5)填充。然后使用“复制/粘贴特殊值 - 值”覆盖它。
  3. D列包含标记为1到5的聚合组。
  4. E列包含每个组中的聚合大小。它使用=SUMIF($B$2:$B$201,"="&D2,$A$2:$A$201)
  5. 计算
  6. 列F包含每个组的目标值(组1到4为1000,组5为忽略)。
  7. G列包含每组目标值的平方误差。它使用=(E2-F2)^2
  8. 计算
  9. Cell G7将成为" Set Objective"单元格是误差平方和。它使用=SUM(G2:G5)
  10. 计算

    下面是使用解算器之前设置工作表的屏幕截图。

    enter image description here

    求解器设置

    使用以下标准设置解算器...

    1. "设定目标:"是$G$7
    2. "到:"是"敏"
    3. "通过改变可变单元格:"是$B$2:$B$201
    4. &#34;受制约约束:&#34;包括:$B$2:$B$201 <= 5$B$2:$B$201 = integer$B$2:$B$201 >= 1
    5. &#34;选择解决方法:&#34;是Evolutionary。注意:您可以使用GRG,但速度要慢得多。
    6. &#34;选项&#34;,&#34;所有方法&#34;选项卡,在&#34;求解整数约束&#34;区域,请确保Ignore Integer Constraints 检查。
    7. 以下是“求解器参数”对话框的屏幕截图:

      enter image description here

      <强>解决方案

      您的最佳区域可能是平坦的&#34;所以有多种可能的解决方案。

      以下是我生成的解决方案的屏幕截图...

      enter image description here