=RANDBETWEEN(1,2)
但我窃以为你应该看到雪的概率至少不低于70%,所以我打开Excel又掐指一算~~~~嘿~成了~
=IF(
RANDBETWEEN(1, 10) <= 7,
"雪花飘飘",
"雪未至"
)
=IF(
RANDBETWEEN(1, 10) <= 7,
"看到了",
"没看到"
)
用以上公式为例,RANDBETWEEN函数生成1和10之间的随机整数,然后判断随机值是否小于等于7。1~10共有10个可能结果,1~7占所有可能性的70%,以此作为你看到雪的概率。
=IF(
RANDBETWEEN(0, 1),
"打又怎么滴?",
"算了吧还是"
)
夜渐深了,但还是不知道该临幸哪位贵妃?
=INDEX(
{"静妃"; "淑妃"; "丽妃"; "华妃"; "惠妃"},
RANDBETWEEN(1, 5)
)
=INDEX(
{"优秀", "良好", "及格", "不及格"},
RANDBETWEEN(1, 4)
)
=INDEX(
SORTBY(
A2:A13,
RANDARRAY(COUNTA(A2:A13))
),
ROW(1:4)
)
公式先使用RANDARRAY函数生成一组随机值,依此作为排序依据,对A列的人名打乱排列顺序,然后提取前4人。
=LET(
_x, RANDARRAY(12),
MAP(_x, LAMBDA(_y, _y / SUM(_x) * 500))
)
公式先使用RANDARRAY函数成12个随机值,然后计算每个随机值在总和中的占比,用占比乘以500,也就是每个人红包的随机金额。
=IF(
SUM(B$2:B$13) = 50000,
B2,
RANDBETWEEN(3000, 5000)
)
公式先判断B2:B13区域的总和是否等于5W,如果相等,则保留B2原值,否则在3000~5000之间生成一个随机值。
=SORTBY(
MAP(
SEQUENCE(10),
LAMBDA(_x,
LOOKUP(
_x,
{0, 3, 8},
RANDBETWEEN({1, 60, 81}, {59, 80, 100})
)
)
),
RANDARRAY(10)
)
公式先使用SEQUENCE函数生成1-10个数字,然后使用LOOKUP函数将这10个数字划分到3个区间:{0, 3, 8}。其中0~2为一个区间,包含2个数字,占比20%;3~7为一个区间,包含5个数字,占比50%;8及以上为一个区间,包含3个数字,占比30%。
=RANDBETWEEN(
{1, 60, 81},
{59, 80, 100}
)
=REDUCE(
E9:G9,
E2:E6,
LAMBDA(_d, _v,
LET(
_date, FILTER(A1:C500, A1:A500 = _v),
VSTACK(
_d,
TAKE(
SORTBY(_date, RANDARRAY(ROWS(_date))),
VLOOKUP(_v, E1:F6, 2, 0)
)
)
)
)
)
公式使用REDUCE函数迭代每个班级,使用FILTER函数按班级筛选名单,使用SORTBY+RANDARRAY的套路打乱随机排序,再用TAKE函数截取指定数量的行数。
🚂>>~
加入我的付费会员,全面学习Excel
透视表 函数 图表 VBA PQ想学啥学啥
👀