基于Excel中概率的随机数

时间:2013-04-25 20:39:00

标签: excel excel-formula

如何创建一个随机数生成器,根据概率计算随机数?

例如,我有以下数字,它们将出现在单元格A1和B1中的概率:

100 5%
75  10%
50  42%
30  30%
15  5%
0   8%

因此,公式将“随机”返回“15”的数字5%。

3 个答案:

答案 0 :(得分:4)

略微减少开销:

制作您的值的参考图表,以及概率的运行总计:

C   D   E
100 5%  0
75  10% 5%
50  42% 15%
30  30% 57%
15  5%  87%
0   8%  92%

然后在此图表上查找0-1随机数。 =LOOKUP(RAND(),$E$2:$E$7,$C$2:$C$7)

我生成了5224个数字并生成了结果的数据透视图。刷新导致百分比在目标周围略微动摇,但所有尝试看起来都很好。

Row Labels  Count   Percentage  Target
       0     421        8.06%      8%
      15     262        5.02%      5%
      30    1608       30.78%     30%
      50    2160       41.35%     42%
      75     490        9.38%     10%
     100     283        5.42%      5%
Grand Total 5224    100.00% 

或者您可以使用两个单元格和一个长if语句来执行此操作: =RAND() =IF(A9<0.05,100,IF(A9<0.15,75, ... 0))...

答案 1 :(得分:2)

此功能是分析工具包添加的一部分。您可以在Excel选项中找到它 - &gt;添加ins - &gt;管理添加插件。

您想要随机数生成,然后选择“离散”分布。您输入的是您在帖子中提供的表格。

“离散 以值和相关的概率范围为特征。范围 必须包含两列:左列包含值,右列 列包含与该行中的值关联的概率。总和 概率必须为1.“

jsarma的建议也很好......

答案 2 :(得分:1)

您可以使用vlookup和randbetween。

你想要使用randbetween。 http://office.microsoft.com/en-us/excel-help/randbetween-HP005209230.aspx

vlookup:http://office.microsoft.com/en-us/excel-help/vlookup-HP005209335.aspx

填写一列,连续编号范围为1-100。 用5 100,10 75,42 50等填充另一列......

现在......

=VLOOKUP(RANDBETWEEN(1,100),A1:B100,2)

可能有更好的方法可以做到这一点,但我试过这个并且它似乎有效。