如何让不同的细胞群各自加起来达到一定数量

how to get different cell groups each add up to a certain number

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

提前谢谢你

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

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

完成的

工作表设置

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

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

求解器设置

求解器的设置符合以下条件...

  1. "Set Objective:" 是 $G
  2. "To:" 是 "Min"
  3. "By Changing Variable Cells:" 是 $B:$B1
  4. "Subject to the Constraints:" 包括:$B:$B1 <= 5$B:$B1 = integer$B:$B1 >= 1
  5. "Select a Solving Method:" 是 Evolutionary。注意:你可以使用GRG,但是会慢很多。
  6. 在 "Options" 中,在 "All Methods" 选项卡上,在 "Solving with Integer Constraints" 区域中,确保 Ignore Integer Constraints 未选中 .

下面是求解器参数对话框的屏幕截图:

解决方案

您的最佳区域可能是"flat",因此有多种可能的解决方案。

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