如何使用RANDBETWEEN函数生成两个指定数值区间内的随机数
RANDBET 跨两个数值区间取随机值实现方案
原生RANDBETWEEN函数不支持直接传入多个离散区间,你可以通过嵌套逻辑实现需求,以下是两种常用实现方式:
- 单数值等概率方案(区间内每个数被抽中概率完全一致)
你需求的两个区间共有16个有效数值(0-9共10个,18-23共6个),可以按总个数做权重分配,全版本Excel/WPS通用的示例公式:
如果要适配其他区间,只需要修改对应区间的数值个数、上下限参数即可。如果使用支持=IF(RANDBETWEEN(1,16)<=10,RANDBETWEEN(0,9),RANDBETWEEN(18,23))LET函数的365版本Excel/WPS,也可以用更易维护的写法:=LET( 区间1个数,10, 区间1下限,0, 区间1上限,9, 区间2个数,6, 区间2下限,18, 区间2上限,23, 随机位,RANDBETWEEN(1,区间1个数+区间2个数), IF(随机位<=区间1个数,RANDBETWEEN(区间1下限,区间1上限),RANDBETWEEN(区间2下限,区间2上限)) ) - 区间等概率方案(两个区间被选中的概率各占50%)
如果你不需要单数值等概率,只需要先均等概率选区间,再在区间内取随机值,可以用更简洁的写法:=CHOOSE(RANDBETWEEN(1,2),RANDBETWEEN(0,9),RANDBETWEEN(18,23))
内容的提问来源于stack exchange,提问作者BPmkt
相关产品推荐
相关产品推荐

