计算乘客的最佳教练组合?

时间:2014-12-22 18:10:34

标签: excel math formula

我在Microsoft Excel中有一个表格,我想用它来计算最佳的教练组合,以容纳所提供的乘客人数。以下是该表的简化版本:

enter image description here

我需要在教练计数栏中输入三个公式,计算可以承载所有乘客的最佳性价比教练组合。例如,如果有40名乘客,结果应该是一个49个座位的教练,而不是两个20个座位的教练,因为它是最便宜的组合。 我不知道我将如何努力实现这些公式,并会欣赏一些指示。 到目前为止,我在C4的所有内容都是 =IF(MOD(B1, A4) = 0, B1 / A4, 0)仅适用于20的倍数,不考虑教练组合或成本效率。

也许这在公式中实现的任务过于复杂?我是否会更好地使用VB宏,或者只是将其留给用户来计算最佳组合?

3 个答案:

答案 0 :(得分:2)

有两种方法可以解决这个问题。我将概述两种解决方案:

选项1:在工作表公式中

为了找到这条路线的优雅解决方案,我必须花更多的时间在这上面,但这里的功能方法应该足够好。以下是一些快速亮点:

  • 首先,您需要在表格中添加一列,其中列出了教练所承载的最少座位数。这有助于促进vlookup。
  • 其次,请确保您的查找表按照最小座位数按升序排序。
  • 我假设最有效的定价模式是让大多数人加入最大的教练(或许多最大的教练),然后使用最小的教练来容纳剩下的人。如果这不是一个公平的假设,那么这个解决方案可能不合适。

以下是最终结果的屏幕截图: Final Outcome

制作它所需的公式:(以及一个链接,以防您需要将其炸毁:http://i.stack.imgur.com/hKjQK.jpgFinal Excel with Formulas

注意:您会注意到之前的答案不正确,因为它建议74人需要花费180美元而不是140美元。我还没有声誉可以投票,但我想把它说出来。

选项2:使用Excel的求解器加载项

  1. 启用解算器加载项(文件 - >选项 - >加载项 - > Excel加载项(管理) - >解算器加载项)
  2. 配置工作表,如下所示:
  3. <强> UI: Excel Solver Worksheet

    公式: enter image description here

    1. 在功能区上,转到数据选项卡,分析组和&amp;单击“解算器”。
    2. 按如下方式配置解算器: enter image description here
    3. 点击“解决”,然后点击“确定”
    4. 最终结果: Excel Solver Worksheet

答案 1 :(得分:1)

这似乎是一个经典的线性规划问题。你需要最小化总成本=(教练1次50次)+(教练次数2次60次)+(教练次数3次80次),受限于(教练人数1次20次)+(数量)教练2次29)+(教练次数3次49次)大于或等于(参加人数),并且所有教练数量都大于或等于零。我认为Excel的Solver是解决这个问题的工具。您不需要自己实现任何解决方案,只需设置它,Solver就可以处理算法。

答案 2 :(得分:0)

试试这个:

样本计算 1

随着公式显示 2

我们的想法是首先检查最大的教练,使用分数Count / Seats的整数值。第二大教练与剩下的人一样。等等。