图4
四、Excel随机数产生函数的扩展应用(一)生成固定不变的随机数
Excel生成固定不变的随机数有两种方法,一种为输入公式后按 F9,把公式转为数值,在上面已经介绍过;另一种方法为把生成的随机数复制为数值,此方法可以批量把生成的随机数转为固定不变的数值,具体方法如下:
双击 A1 单元格,里面是一个生成随机数的公式,按回车,生成新的随机数;框选 A1:B9,当前选项卡为“开始”,单击窗口左上角的“粘贴”,在弹出的选项中选择“粘贴数值”下的“值”图标,则选中的所有单元格中的生成随机数公式转为数值,再次双击 A1,已经没有公式;操作过程步骤,如图5所示:
图5
(二)生成不重复的随机数
(1)先生成种子,再用种子生成不重复的随机数
1、生成不重复的小数随机数
A、生成种子。双击 A1 单元格,把公式 =RAND() 复制到 A1,按回车,生成一个小数随机数;选中 A1,把鼠标移到 A1 右下角的单元格填充柄上,按住左键,往下拖一直拖到 A10,则所经过单元格都变为同一随机数,按 Ctlr S 保存,则 A1:A10 更新为不同的随机数;
B、生成不重复随机数。双击 B1,把公式 =RAND() 复制到 B1,输入 *A1,按回车,返回一个新的随机数;选中 B1,把鼠标移到 B1 右下角的单元格填充柄上,鼠标变为黑色加号后,双击左键,则 B2:B10 变为与 B1 一样的随机数,按 Ctrl S 保存,B2:B10 变为不同的随机数;操作过程步骤,如图6所示:
图6
2、生成不重复的指定范围的整数随机数
A、假如要生成 50 到 100 之间的随机数。双击 A2 单元格,把公式 =RANDBETWEEN(50,100) 复制到 A2,按回车,生成一个种子随机数,用往下拖的办法生成其它种子随机数;
B、双击 B2,把公式 =INT(RANDBETWEEN(50,100)*A2/100) 复制到 B2,按回车,生成一个随机数,用双击 B2 单元格填充柄的方法生成其它随机数;操作过程步骤,如图7所示:
图7
C、公式 =INT(RANDBETWEEN(50,100)*A2/100) 说明:
先用 RANDBETWEEN(50,100) 产生 50 到 100 的随机数,再用该随机数与 A2 中的种子随机数相乘,然后再除 100(由于两个 50 到 100 的数值相乘扩大了 100 倍,因此要缩小 100 倍),最后用 Int 函数取整。
提示:先生成种子再用种子生成随机数不能保证生成的随机数一定不重复,如果要求生成唯一的随机数,需要下文的方法。
(2)用 Small If CountIf Row Int Rand 函数生成不会重复的随机数
A、假如要生成 1 到 12 之间的不重复随机数。双击 A2 单元格,把公式 =SMALL(IF(COUNTIF(A$1:A1,ROW($1:$12))=0,ROW($1:$12)),INT(RAND()*(12-ROW(1:1)) 1)) 复制到 A2,按 Ctrl Shift 回车,生成随机数 6;把鼠标移到 A2 右下角的单元格填充柄上,鼠标变为黑色加号后,往下拖一直拖到 A13,则所经过单元格全变为 6,按 Ctrl S 保存,则 A2:A13 变为 1 到 12 的随机数;操作过程步骤,如图8所示: