EP03. “Random Numbers 随机数生成”
🔒 登录后可标记已读- 整理 Excel 里生成随机数的几种方法:RAND、RANDBETWEEN、RANDARRAY
- 也讲怎么固定住随机数结果、怎么生成不重复的随机数
- 还有一段简单的 VBA 写法
- 前置知识是基本的公式输入和填充手柄操作
- 学完能应付抽奖、抽样、模拟数据这类需求
重点内容
适用版本
RAND、RANDBETWEEN 桌面版通用;RANDARRAY 需要 Excel 365 或 Excel 2021。
随机数方法怎么选
| 方法 | 生成内容 | 版本要求 |
|---|---|---|
| RAND | 0~1 之间的随机小数 | 桌面版通用 |
| RANDBETWEEN | 两个边界之间的随机整数 | 桌面版通用 |
| RANDARRAY | 指定行列数的随机数组,可设范围/整数 | Excel 365 / 2021 |
RAND 函数:0~1 之间的随机小数
- 选中单元格 A1
- 输入
=RAND()并按 Enter(这个函数不需要任何参数) - 拖动 A1 右下角填充手柄向下复制,生成一整列随机小数
- 因为 RAND 是易失性函数,工作表每次重新计算都会变,如果要固定住结果:复制这些单元格,右键选「粘贴为数值」(Paste As Values)
- 粘贴后可以在公式栏确认,单元格里存的是固定数值而不是公式
RANDBETWEEN 函数:两个边界之间的随机整数
- 选中单元格 A1
- 输入
=RANDBETWEEN(50,75)并按 Enter,会生成 50 到 75 之间的随机整数 - 如果需要小数而不是整数,要改用 RAND 函数自行运算
RANDARRAY 函数:动态数组随机数(Excel 365/2021)
- 默认生成 0~1 之间的随机小数,例如生成 5 行 2 列的数组,一个公式就能自动「溢出」(spilling)填满多个单元格
- 生成指定范围的小数:例如 99~100 之间、1 行 5 列
- 生成指定范围的整数:把第五个参数设为 TRUE,例如 20~80 之间、10 行 1 列
随机数生成器的几种做法
方法一:按 F9 强制刷新 在 A1:A10 输入 =RANDBETWEEN(0,100),每按一次 F9 键,所有随机数会重新计算一次。
方法二:UNIQUE + RANDARRAY 生成不重复随机数 把 UNIQUE 函数包在 RANDARRAY 外面,可以避免结果里出现重复数字。
方法三:VBA 宏
Dim rng As Range, cell As Range
Set rng = Selection
For Each cell In rng
cell.Value = WorksheetFunction.RandBetween(0, 100)
Next cell
选取一个范围后运行这段宏,范围内每个单元格都会被填入 0~100 之间的随机整数。
函数速查
| 函数 | 语法 | 用途 | 例子 |
|---|---|---|---|
| RAND | =RAND() | 生成 0~1 之间随机小数 | =RAND() |
| RANDBETWEEN | =RANDBETWEEN(bottom,top) | 生成两数之间随机整数 | =RANDBETWEEN(50,75) |
| RANDARRAY | =RANDARRAY([rows],[columns],[min],[max],[whole_number]) | 生成随机数组(动态溢出) | =RANDARRAY(10,1,20,80,TRUE) |
学完你会
- ✅ 能用 RAND、RANDBETWEEN 生成随机小数或随机整数
- ✅ 能用「粘贴为数值」固定住随机数结果,避免每次重算都变
- ✅ 能用 UNIQUE + RANDARRAY 组合生成不重复的随机数
常见错误
- 忘记「粘贴为数值」就直接拿 RAND/RANDBETWEEN 结果去做记录,结果每次打开文件数字都变了
- 在旧版本 Excel(非 365/2021)里使用 RANDARRAY,函数不存在会直接报错
- 需要「不重复」的随机数却单纯用 RANDBETWEEN 拖填,容易产生重复值,应该改用 UNIQUE + RANDARRAY 组合
Sources
Blog / Website: