Cal*_*mDA 6 arrays random excel excel-formula
接下来我刚才问了一个关于获得一系列不同(但不一定是唯一的)随机数的问题,答案是这样的:
=RANDBETWEEN(ROW(A1:A10)^0,10)
Run Code Online (Sandbox Code Playgroud)
获取1到10之间的10个随机数的数组
如果我使用上面的公式创建一个命名范围(称为"randArray"),我希望我能够多次引用randArray并获得相同的随机数集.当然,每次我按F9或更新工作表时它们都会改变- 但是一起改变.
这就是我得到的,两组完全不同的随机数
我对这种行为并不感到惊讶,但如何在不使用VBA且不将随机数放入工作表的情况下实现这一目标?
此示例旨在成为MCVE.在我的实际情况中,我使用随机数来估计Pi.用户规定要应用多少随机点并获得相应准确的估计.之所以出现这个问题,是因为我还对点进行了绘制,当有少量点时,很清楚地看到估计和图表不代表相同的数据集
更新
我已经将最初的赏金授予@Michael提供了一个有趣且不同的解决方案.我仍然在寻找一个完整的解决方案,允许用户规定使用多少随机点,虽然可能没有完美的答案,但我仍然对任何其他可能的解决方案感兴趣,并且非常乐意进一步提供奖励.
感谢所有迄今为止贡献的人.
jai*_*ish -1
这不是一个很好的答案,但考虑到易失性函数的限制,将 IF 公式与易失性函数和放置在工作表中某处的易失性变量一起使用绝对是一个可能的答案。
我使用下面的公式来达到预期的结果
=IF(rngIsVolatile,randArray,A1:A10)
Run Code Online (Sandbox Code Playgroud)
我将单元格 B12 设置为 rngIsVolatile。我粘贴了下面的屏幕截图来查看它的工作情况。
当 rngIsVolatile 设置为 True 时,它会从 randArray 中获取新值:
当 rngIsVolatile 设置为 False 时,它会从 A1:A10 中获取旧值: