如何跟踪单个单元格中多个 randbetween() 结果的频率

如何跟踪单个单元格中多个 randbetween() 结果的频率

我正在尝试使用 Excel 或 LibreOffice Calc 模拟大量掷骰子。我设法找到这里根据指定要生成的数字数量和数字生成范围的值生成多个随机数,然后相加总数的公式:

=SUM(RANDBETWEEN(1,(ROW(INDEX($A:$A,1):INDEX($A:$A,$A2))<=$A2)*$B2))

我不是像这样计算“骰子”的总和,而是试图获得一个输出,显示特定结果发生的次数,例如掷出 1 的次数。

虽然我知道如果我想确定单元格列或单元格行中出现的值的频率,如何使用各种计数函数来执行此操作,但我无法弄清楚如何针对单个单元格内生成的数字集执行此操作。

这有可能吗?任何帮助都将不胜感激。


编辑(希望)进一步澄清:

例如,上面的函数产生如下结果:

在此处输入图片描述

它允许我指定要掷的骰子数量(在 A2 处)和骰子的面数(在 B2 处)(图片还包括一个常数修饰符,但我在这里不关心它),然后在单个单元格(图片中的 E1)中,它会在这些参数内生成多个随机数并列出它们的总和。因此,在图片中,它生成了 1 到 3 之间的 2 个数字,并添加了常数修饰符 2,结果为 7。

我想弄清楚的是如何让 E1 单元格输出指示生成特定值的次数。因此,在示例中,为了获得输出 7,两个随机生成的数字必须是 2 和 3。我希望找到一种方法来指定我希望 E1 的输出等于生成 3 的次数,以便在示例中 E1 单元格读取 1。


编辑 2:
因此,当我输入 #dice 和 #sides 值时,当前编写的函数会在 1 和 #sides 值之间生成几个随机数,并输出它们的和。如果 #dice 值为 3,它会生成 3 个随机数并给出这三个数字的总和。如果我将 #dice 值更改为 10,它会生成 10 个随机数并给出这些数字的总和。我永远看不到随机生成的数字,只有总和。

我对随机数的总和不感兴趣。相反,我希望做的是改变函数,使其在生成随机数时跟踪特定数字的生成频率。

因此,例如,假设骰子数字为 4,面数为 6,则函数生成以下一组数字:1、3、5、1。我希望得到的解决方案是计算生成 1 的次数为 2 次,函数的输出为 2。如果它生成一组 4、5、1、3,则输出为 1。一组 1、1、1、2 的输出为 3。

与当前函数一样,我希望找到的解决方案实际上并没有向我显示随机生成的数字,而只是最终输出 - 生成 1 的次数。就像单单元格数组公式一样,用于跟踪生成 1 的频率。

答案1

=COUNTIF(RANDBETWEEN(1,(ROW(INDEX($A:$A,1):INDEX($A:$A,$A2))<=$A2)*$B2), 1)

这就是我想要的。后面的 COUNTIF 条件也可以更改,例如,通过输入“<=2”作为最后一个条件,单元格将输出掷出的 1 或 2 的总数,而不是跟踪 1 出现的频率。

编辑:进一步测试后发现,当仅生成 1 个随机数时,这似乎会产生错误。因此,这显然不是一个完美的解决方案,但对我而言已经足够好了。

相关内容