如何在Google Sheets的A1-D1单元格生成10-30的不重复随机数
在Google Sheets中生成A1:D1不重复的10-30范围随机数
方法1:数组公式一次性生成(推荐)
直接在A1单元格输入以下公式,它会自动在A1到D1生成4个不重复的10-30之间的随机整数:
=ARRAYFORMULA(INDEX(SORT(SEQUENCE(21,1,10),RANDARRAY(21),TRUE),SEQUENCE(1,4)))
公式拆解:
SEQUENCE(21,1,10):生成10到30的连续整数序列(共21个数值,30-10+1=21)SORT(...,RANDARRAY(21),TRUE):用随机生成的21个数值作为排序依据,打乱上述整数序列INDEX(...,SEQUENCE(1,4)):从打乱后的序列中取出前4个值,横向排列在A1:D1单元格
也可以用另一种等价写法:
=ARRAYFORMULA(SORTN(RANDARRAY(21,1,10,30),4,0,RANDARRAY(21),TRUE))
方法2:单个单元格独立设置(适合需单独控制的场景)
如果不想用数组公式,可给每个单元格单独配置函数,自动排除已生成的数值:
- A1单元格:
=RANDBETWEEN(10,30)
- B1单元格:
=INDEX(FILTER(SEQUENCE(21,1,10),NOT(SEQUENCE(21,1,10)=A1)),RANDBETWEEN(1,20))
- C1单元格:
=INDEX(FILTER(SEQUENCE(21,1,10),NOT(SEQUENCE(21,1,10)={A1,B1})),RANDBETWEEN(1,19))
- D1单元格:
=INDEX(FILTER(SEQUENCE(21,1,10),NOT(SEQUENCE(21,1,10)={A1,B1,C1})),RANDBETWEEN(1,18))
这种方式逻辑相对繁琐,且每次表格重新计算时可能需要手动触发刷新(或修改单元格内容)。
额外提示
- 生成的随机数会随表格重新计算(如打开文件、编辑内容)自动更新,若需固定结果,可选中A1:D1,右键选择粘贴值即可。
内容的提问来源于stack exchange,提问作者Lê Phong Nguyễn
相关产品推荐
相关产品推荐

