excel - Excel中分配概率的随机数

标签 excel excel-formula vba

以下是我正在尝试做的事情:

我有一堆元素,比如说从 A 到 J,总共 10 件。现在我想生成总共 20 个抽奖,每次抽奖我需要上述 10 个项目中的 3 个项目。现在,如果第一项显示为 A,则无论其分配的概率如何,它都不应该出现在第二项和第三项中。

让我们说:

一个 - 4%
乙 - 20%
C - 1%
D - 16%
E - 5%
F - 7%
G - 3%
H - 21%
我 - 6%
Ĵ - 17%

现在,我需要在每次抽奖中从上面的列表中随机生成 3 个项目,根据它们分配的概率,但是假设第一个项目是 B,那么第二个和第三个项目不应该是 B。我应该对 20 个重复相同的过程画。

答案应该是这样的:

         1st Item    2nd Item   3rd Item
1st Draw   B            D           J
2nd Draw   D            E           F
3rd Draw   B            H           G

应根据分配的概率生成数字。

提前致谢。

最佳答案

对于公式路线:

您将需要构建两个辅助列。第一个是运行总计

我把你的值(value)观放在 G1:H10

然后在 I1 我把 1
在 I2 中,我输入:

=I1+(H1*100)

并抄下来:

enter image description here

然后我创建了第二个助手。在K1我放:
=INDEX(G:G,MATCH(ROW(1:1),I:I))

并复制了 100 行。

enter image description here

这创造了概率的动态范围。

然后在 B2 我放:
=INDEX($K:$K,AGGREGATE(15,6,ROW($1:$100)/(COUNTIF($A2:A2,$K$1:$K$100)=0),RANDBETWEEN(1,100-SUMPRODUCT(COUNTIF($A2:A2,$K$1:$K$100)))))

复制了三个,并尽可能多地复制:

enter image description here

注意事项:
  • 这仅适用于整数百分比,没有 20.513% .
  • 表中的每个选项必须至少为 1% .
  • 总百分比必须等于 100%
  • 关于excel - Excel中分配概率的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46229983/

    相关文章:

    excel-2007 - Excel 2007 - 条件格式 - 比较同一列中的两个单元格?

    excel - 如何复制使用数组的公式?

    excel - Excel 中范围内的 DATEDIF

    python - 如何在excel表中创建具有相应值的新列

    sql-server - Excel vba xml解析性能

    Python - 控制/编辑 Excel 的现有窗口/工作簿

    excel - 如何在Excel VBA中修复 "Run-time error ' 380'?

    excel - 定义范围并清除其内容

    mysql - Access 和MySQL

    excel - Replace() 来自 Shell 的图像尺寸字符串中的问号