Excel怎么用公式生成0到100的随机数
讲清在Excel里生成0到100之间随机数的函数公式,包括RANDBETWEEN和INT加RAND两种写法的区别,以及如何让随机数固定不变或手动刷新。
在做抽奖名单、随机分组、模拟数据或者练习题的时候,很多人都需要在 Excel 里快速生成一批 0 到 100 之间的随机数。手动一个个输入显然不现实,网上搜到的写法又五花八门,有的用 ROUND,有的用 INT,结果有的数字出现得明显更少。本文面向需要在 Excel 中生成随机数的普通用户,讲清楚常用的公式怎么写、它们有什么区别,以及如何让结果固定下来或者重新刷新。
读完之后,你可以直接在单元格里输入一条公式,得到整数或小数形式的 0 到 100 随机数,并知道在什么情况下需要把公式结果转成固定数值,避免表格一改动数字就跟着变。
Excel 怎么用公式生成 0 到 100 的随机数?一句话结论
生成 0 到 100 之间的整数,直接使用 RANDBETWEEN 函数,写作 =RANDBETWEEN(0,100);需要小数则用 RAND 函数乘以 100。具体选哪种写法,取决于你要的是整数还是小数,以及结果是否需要固定。
| 你的情况 | 推荐做法 | 原因 |
|---|---|---|
| 需要 0 到 100 之间的整数,两端都可能出现 | =RANDBETWEEN(0,100) | 函数直接指定小值和大值,结果均匀,写法简单 |
| 老版本 Excel 中没有 RANDBETWEEN,或想理解底层逻辑 | =INT(RAND()*101) | RAND 得到 0 到 1 之间的小数,乘以 101 再取整,得到 0 到 100 的整数 |
| 需要带小数的随机数 | =RAND()*100 | 结果在 0 到 100 之间,保留小数,不做取整 |
| 需要结果保持不变,用于存档或核对 | 先生成,再复制并选择性粘贴为数值 | 公式会随表格重算而变化,粘贴为数值后结果才固定 |
| 想用 =ROUND(RAND()*100,0) 取整 | 不建议用于抽样 | 0 和 100 各只有约一半的机会被取到,分布不均匀 |
开始之前:先确认这几点
动手输入公式前,有几件事会影响结果是否符合你的预期。
- 确认你需要的是整数还是小数。 抽奖编号、分组、考试分数一般需要整数,用 RANDBETWEEN 省事;模拟测量数据之类的场景可能需要小数,就用 RAND 乘以 100。
- 确认是否包含 0 和 100。 RANDBETWEEN(0,100)的结果包含这两个端点。如果你只想要 1 到 100,应改成 =RANDBETWEEN(1,100),而不是在结果上做加减。
- 确认 Excel 版本。 RANDBETWEEN 在较新的版本中都可以直接使用。如果你的版本较旧,或者公式提示找不到函数,可以改用 INT 加 RAND 的写法。
- 确认是否需要固定结果。 RAND 和 RANDBETWEEN 属于易失性函数,只要表格发生任何计算,它们都会重新取值。如果结果将用于存档、发给别人核对,或者不希望它自己变化,就要在生成后转为数值。
- 确认公式输入环境。 函数名和括号、逗号要用英文半角符号输入。如果在中文输入法状态下输入逗号,公式会出错。
在 Excel 中输入随机数公式的步骤
下面以生成一列 20 个 0 到 100 之间的整数为例。
- 打开 Excel 工作表,点击要放置随机数的单元格,比如 A1。
- 在编辑栏或单元格中输入 =RANDBETWEEN(0,100),按回车确认,A1 会显示一个 0 到 100 之间的整数。
- 把鼠标移到 A1 右下角的填充柄上,向下拖动到 A20,所有单元格都会生成独立的随机数。
- 如果需要小数,可以在另一列输入 =RAND()*100,同样向下填充,结果会保留小数位。
- 需要改变数值范围时,修改括号中的两个数字即可,例如 =RANDBETWEEN(1,50) 生成 1 到 50 之间的整数。
- 如果要刷新全部随机数,按 F9 键,所有易失性公式会重新计算一次。
- 如果希望结果固定,选中整列并复制,然后在原位置使用 Excel 的选择性粘贴功能,只保留数值。这样单元格里保存的就是当前数字,不再随表格变化。
- 最后保存文件。若保存后再次打开时数字变了,说明没有完成第 7 步,需要重新转为数值。
做完后逐项核对
生成随机数后,建议花一分钟检查下面几项,尤其是结果要用于正式场合时。
| 检查项 | 怎么看 | 有问题怎么办 |
|---|---|---|
| 数值范围是否正确 | 用 MIN 和 MAX 函数统计这一列,小值应不小于 0,大值应不大于 100 | 检查括号中的两个数字是否写反或多了空格,修改后重新填充 |
| 结果是否为整数 | 观察单元格是否有小数点,或用 INT 判断 | 如果误用了 RAND 乘以 100,改用 RANDBETWEEN,或用 ROUND 包裹后再核对 |
| 结果是否会自动变化 | 随便修改一个无关单元格,看随机数是否跟着改变 | 说明仍是公式,按上面的步骤转为数值 |
| 0 和 100 的出现频率 | 生成大量数据后,统计 0 和 100 出现的次数,与其他数字大致接近即可 | 若明显偏少,检查是否用了 ROUND(RAND()*100,0)这种写法,改用 RANDBETWEEN |
| 有没有重复值 | 用 COUNTIF 统计某个数字出现的次数 | RANDBETWEEN 允许重复,如果需要不重复,见下文常见问题 |
需要说明的是,Excel 生成的随机数属于伪随机数,适合日常的抽样、分组和练习,不适合对安全性要求高的场合,例如生成密码或密钥。
🎯 哪种做法适合你?
如果你只是想快速得到一批整数,直接使用 RANDBETWEEN 即可,几乎不需要额外设置。如果你要做的是模拟实验,需要大量小数并且之后还要进行统计,RAND 乘以 100 更合适,记得统计前先确认结果是否已经固定。如果你要把结果交给他人核对,或者作为正式记录保存,就要在生成后转为数值,并在文件里注明生成日期,方便追溯。
❓ 常见问题(FAQ)
1. RANDBETWEEN(0,100)生成的数字会不会重复?
会。RANDBETWEEN 每次独立取值,同一个数字可能在多个单元格中出现。如果需要不重复,可以在旁边一列用 RAND 生成辅助数,再对两列整体按辅助列排序,前若干行即为不重复的随机结果。
2. 为什么我输入公式后显示的是小数,而不是整数?
这通常是因为单元格格式设置为了常规或数字并保留了小数位。RAND 本身返回的就是小数,如果需要整数,应使用 RANDBETWEEN 或在外层包裹 INT 函数。
3. 怎样只生成一个随机数,不想每次刷新?
在单元格中输入公式后,直接复制,再选择性粘贴为数值,即可得到一个固定的数字。之后无论怎样计算,它都不会再变。
4. 公式计算很慢,是不是随机数的问题?
如果工作簿中有大量 RAND 或 RANDBETWEEN 公式,每次编辑都会触发重算,表格会变慢。此时可以把不再需要变动的结果转为数值,减少易失性公式的数量。
📝 总结
在 Excel 中生成 0 到 100 的随机整数,直接的写法是 =RANDBETWEEN(0,100);需要小数则用 =RAND()*100。无论用哪种,只要结果需要固定,都应复制后选择性粘贴为数值,并在使用前检查范围和分布,这样生成的随机数才可靠。


