我在Microsoft Excel中有一个表格,我想用它来计算最佳的教练组合,以容纳所提供的乘客人数。以下是该表的简化版本:
我需要在教练计数栏中输入三个公式,计算可以承载所有乘客的最佳性价比教练组合。例如,如果有40名乘客,结果应该是一个49个座位的教练,而不是两个20个座位的教练,因为它是最便宜的组合。
我不知道我将如何努力实现这些公式,并会欣赏一些指示。
到目前为止,我在C4的所有内容都是
=IF(MOD(B1, A4) = 0, B1 / A4, 0)
仅适用于20的倍数,不考虑教练组合或成本效率。
也许这在公式中实现的任务过于复杂?我是否会更好地使用VB宏,或者只是将其留给用户来计算最佳组合?
答案 0 :(得分:2)
有两种方法可以解决这个问题。我将概述两种解决方案:
为了找到这条路线的优雅解决方案,我必须花更多的时间在这上面,但这里的功能方法应该足够好。以下是一些快速亮点:
以下是最终结果的屏幕截图:
制作它所需的公式:(以及一个链接,以防您需要将其炸毁:http://i.stack.imgur.com/hKjQK.jpg)
注意:您会注意到之前的答案不正确,因为它建议74人需要花费180美元而不是140美元。我还没有声誉可以投票,但我想把它说出来。
<强> UI:强>
公式:
答案 1 :(得分:1)
这似乎是一个经典的线性规划问题。你需要最小化总成本=(教练1次50次)+(教练次数2次60次)+(教练次数3次80次),受限于(教练人数1次20次)+(数量)教练2次29)+(教练次数3次49次)大于或等于(参加人数),并且所有教练数量都大于或等于零。我认为Excel的Solver是解决这个问题的工具。您不需要自己实现任何解决方案,只需设置它,Solver就可以处理算法。
答案 2 :(得分:0)
试试这个:
样本计算
随着公式显示
我们的想法是首先检查最大的教练,使用分数Count / Seats的整数值。第二大教练与剩下的人一样。等等。