Excel中基于概率的随机数
如何创建一个随机数生成器,根据概率计算随机数 例如,我有以下数字,它们从单元格A1和B1开始出现的概率:Excel中基于概率的随机数,excel,excel-formula,Excel,Excel Formula,如何创建一个随机数生成器,根据概率计算随机数 例如,我有以下数字,它们从单元格A1和B1开始出现的概率: 100 5% 75 10% 50 42% 30 30% 15 5% 0 8% 因此,公式将在所有时间内“随机”返回数字“15”5%。您可以使用vlookup和randbetween 你会想使用randbetween vlookup: 用1-100之间的连续数字填充一列。 用5 100、10 75、42 50等填充另一列 现在 =VLOOKUP(RANDBETWEEN(1,100
100 5%
75 10%
50 42%
30 30%
15 5%
0 8%
因此,公式将在所有时间内“随机”返回数字“15”5%。您可以使用vlookup和randbetween 你会想使用randbetween vlookup: 用1-100之间的连续数字填充一列。 用5 100、10 75、42 50等填充另一列 现在
=VLOOKUP(RANDBETWEEN(1,100),A1:B100,2)
也许有更好的方法可以做到这一点,但我尝试了这一点,它似乎起了作用。稍微减少开销: 制作一张价值观参考图表,并列出总概率:
C D E
100 5% 0
75 10% 5%
50 42% 15%
30 30% 57%
15 5% 87%
0 8% 92%
然后在此图表上查找0-1随机数<代码>=查找(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此功能作为分析工具包加载项的一部分提供。您可以在Excel选项->加载项->管理加载项中找到此功能
您需要生成随机数,然后选择“离散”分布。这是您在帖子中提供的表
“离散的
以值和相关概率范围为特征。范围
必须包含两列:左列包含值,右列包含值
列包含与该行中的值关联的概率
概率之和必须为1。”
jsarma的建议也是很好的….是否应该对概率进行插值?例如,随机数生成器是否可以产生值“80”?“80.5”?仅限整数?最大值/最小值?生成器应仅生成整数0,15,30,50,75100注意:如果您尝试将rand组合到if语句中,那么您将得到不同的概率曲线,而不是将它们作为两个单独的公式,只计算rand一次。如果您必须多次执行此操作,则可能值得进行一次测试这是一个宏,而不是一个公式。这部分起作用,但在100次试验中,“0”永远不会返回,我确实得到了5次“#N/a”。我发现了上述问题。Excel声明“如果查找函数找不到精确匹配,它会在查找范围中选择小于或等于该值的最大值。”。因此,我认为E列应该是“0%、5%、15%、57%、87%、92%”还是“0%、6%、16%、58%、88%、93%”?此解决方案不适用于我,因为概率可能会根据另一个选项卡中的另一个函数而变化