A1 单元格中输入随机函数
=RANDBETWEEN(1,10)
此函数将在 1 10 之间随机提取 1 个整数。
 
A2 单元格输入
={LARGE(IF(COUNTIF($A$1:A1,ROW($1:$10)),,ROW($1:$10)),RANDBETWEEN(1,10-ROW(A1)))}
此函数为随机不重复的重要部分
注:{……}这个括号是同时安Ctrl+Shift+Enter得到的数组公式形式,无需输入。
 
A1 单元格的随机函数得出的值为 8
1
COUNTIF($A$1:A1,ROW($1:$10)
部分将提示 A1 单元格数字在 ROW($1:$10) 数组即 {1;2;3;4;5;6;7;8;9;10} 中的位置。则 COUNTIF($A$1:A1,ROW($1:$10) 得到的数组为 {0;0;0;0;0;0;0;1;0;0}
 
2
IF(COUNTIF($A$1:A1,ROW($1:$10)),,ROW($1:$10))
部分根据之前 COUNTIF 得到的数组,计算得到 {1;2;3;4;5;6;7;0;9;10}
 
3
RANDBETWEEN(1,10-ROW(A1))
此时计算得到 RANDBETWEEN(1,{10}) ,随机产生 1 10 的数据。
 
3
LARGE(array,k)
函数此时将 IF 函数计算得到 {1;2;3;4;5;6;7;0;9;10} RANDBETWEEN 函数得到的随机数代入;

按住Ctrl+Shift+Enter输入为数组,就得到一个 1 10 且除 A1 单元格 8 以外的数值。

A3:A10单元格由A2拖拉公式可以得到。
 
A3单元格