excel 如何在优化总距离(单元格E18中)的同时自动分配矩阵中的位置(列D)?

cl25kdpy  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(95)

我正在分配一份候选人名单(B栏)某些地点(第3行)根据他们家和位置地址之间的距离我已经使用自定义VBA公式计算出了所有位置之间的距离我的挑战是我如何确保每个人都被分配到最佳位置,以便我们最终获得最低的总平均距离(单元格E18)。我还想确保在可能的情况下,没有人被分配到离他们家超过40英里的位置。
这是我的矩阵,在分配位置之前

我通常会手动完成这个分配步骤,只是插入不同的位置分配,直到我得到合理的东西。然而,有时我们有150多个候选人和150多个位置,这使得这非常困难和耗时。我正在寻找一种方法,可以根据总平均距离自动找到最理想的位置分配。
是我的矩阵,在手动分配位置后

我通常手动完成这个分配步骤,然后插入不同的位置分配,直到我得到合理的位置。有时我会先通过技术人员获得最少的可行位置选项(所以一个技术与大多数较长的距离)或有时我去的位置与最少的可行的候选人.这是好的,当我有一个小的数据集,如这一个.然而,有时我们有150+候选人和150+位置,这使得这非常困难和耗时。我正在寻找一种方法来自动找到最理想的位置分配的基础上总的平均距离。

7lrncoxx

7lrncoxx1#

您的问题可以归结为“我应该在D4:D16中输入什么数字,以获得E18中的最小值?”您可以使用Excel Solver加载项来解决这个问题。
文件〉选项〉外接程序〉管理Excel外接程序〉转到...〉启用规划求解外接程序〉确定。现在,在数据选项卡上,您应该看到带有规划求解外接程序的分析选项卡。
首先,为每个候选人分配随机区域,只需给予他们1-13。
E4中的距离公式应为:

=INDEX($H$4:$T$16,MATCH(B4,$B$4:$B$16,0),MATCH(D4,$H$2:$T$2,0))

你可以把它拖到你需要的地方,但是如果你改变了候选人/区域的数量,你就必须调整它。
打开Excel解算器并使用以下参数:

  • 设置目标E18
  • 至最小值
  • 通过更改可变单元格:D4:D16
  • 受限于以下限制条件:(单击“添加”)
  • D4:D16 =所有不同
  • 选择求解方法:进化的
  • (单击求解)

Excel将开始循环所有的可能性。使用默认设置,如果它在30秒内没有任何改进,它将停止。这可能不是绝对最好的,但它将非常非常好。如果你想玩设置,你可以搜索Excel Solver。

相关问题