如何让不同的细胞群各自加起来达到一定数量
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 中使用“THE SOLVER”来解决但是我
不确定我应该使用什么约束以及哪种求解方法(即单纯形、GRG 非线性或进化)方法,因为我不熟悉它
提前谢谢你
正如我在评论中提到的,Excel 中的标准求解器对决策变量的最大限制为 200。
此示例仅限于 200 个变量 - 如果您有高级求解器,则可以扩展解决方案。这是使用 Excel 2016.
完成的
工作表设置
- A 列包含尺码数据。
- B 列包含 A 列中每个成员所属的 "Group"。它最初使用公式
=RANDBETWEEN(1,5)
填充。然后使用复制/选择性粘贴 - 值覆盖它。
- D 列包含聚合组,标记为 1 到 5。
- E 列包含每个组内的总大小。它是用
=SUMIF($B:$B1,"="&D2,$A:$A1)
计算的
- F 列包含每个组的目标值(第 1 到 4 组为 1000,第 5 组忽略)。
- G 列包含每组目标值的平方误差。它是用
=(E2-F2)^2
计算的
- 单元格 G7 将是 "Set Objective" 单元格,并且是误差平方和。它是用
=SUM(G2:G5)
计算的
下面是使用求解器之前的设置工作表的屏幕截图。
求解器设置
求解器的设置符合以下条件...
- "Set Objective:" 是
$G
- "To:" 是 "Min"
- "By Changing Variable Cells:" 是
$B:$B1
- "Subject to the Constraints:" 包括:
$B:$B1 <= 5
、$B:$B1 = integer
和 $B:$B1 >= 1
- "Select a Solving Method:" 是
Evolutionary
。注意:你可以使用GRG,但是会慢很多。
- 在 "Options" 中,在 "All Methods" 选项卡上,在 "Solving with Integer Constraints" 区域中,确保
Ignore Integer Constraints
未选中 .
下面是求解器参数对话框的屏幕截图:
解决方案
您的最佳区域可能是"flat",因此有多种可能的解决方案。
下面是我生成的解决方案的屏幕截图...
我有一个 excel 文件,其中有一列包含代表文件大小的数字,每个数字都是一个浮点数,小数位数最多为两位(例如:23.04)。总细胞数是(277 个细胞)。我想自动将加起来等于(1000)或尽可能接近 的细胞分组数 (1000)。所有单元格的总和是 (5739.49) 因此,应该有 (4) 组单元格 ,每组加起来为 (1000) 并且最后一个(第 5 组)并不重要 它加起来有多少。现在:
- 我知道这可以在每个组的 excel 中使用“THE SOLVER”来解决但是我 不确定我应该使用什么约束以及哪种求解方法(即单纯形、GRG 非线性或进化)方法,因为我不熟悉它
提前谢谢你
正如我在评论中提到的,Excel 中的标准求解器对决策变量的最大限制为 200。
此示例仅限于 200 个变量 - 如果您有高级求解器,则可以扩展解决方案。这是使用 Excel 2016.
完成的工作表设置
- A 列包含尺码数据。
- B 列包含 A 列中每个成员所属的 "Group"。它最初使用公式
=RANDBETWEEN(1,5)
填充。然后使用复制/选择性粘贴 - 值覆盖它。 - D 列包含聚合组,标记为 1 到 5。
- E 列包含每个组内的总大小。它是用
=SUMIF($B:$B1,"="&D2,$A:$A1)
计算的
- F 列包含每个组的目标值(第 1 到 4 组为 1000,第 5 组忽略)。
- G 列包含每组目标值的平方误差。它是用
=(E2-F2)^2
计算的
- 单元格 G7 将是 "Set Objective" 单元格,并且是误差平方和。它是用
=SUM(G2:G5)
计算的
下面是使用求解器之前的设置工作表的屏幕截图。
求解器设置
求解器的设置符合以下条件...
- "Set Objective:" 是
$G
- "To:" 是 "Min"
- "By Changing Variable Cells:" 是
$B:$B1
- "Subject to the Constraints:" 包括:
$B:$B1 <= 5
、$B:$B1 = integer
和$B:$B1 >= 1
- "Select a Solving Method:" 是
Evolutionary
。注意:你可以使用GRG,但是会慢很多。 - 在 "Options" 中,在 "All Methods" 选项卡上,在 "Solving with Integer Constraints" 区域中,确保
Ignore Integer Constraints
未选中 .
下面是求解器参数对话框的屏幕截图:
解决方案
您的最佳区域可能是"flat",因此有多种可能的解决方案。
下面是我生成的解决方案的屏幕截图...