Microsoft Lab
全部软件
Excel排序(Sort)约 5 分钟

Randomize List 随机打乱列表

重点内容


适用版本

方法一(RAND + 排序)桌面版通用;方法二(RANDARRAY / SORTBY)需要 Excel 365 或 2021。


方法怎么选

方法适合场景备注
RAND + 排序任何 Excel 版本,一次性打乱不需要动态更新排序后要「粘贴为值」才能固定结果
RANDARRAY + SORTBYExcel 365 / 2021,希望公式随时能重新洗牌一条公式搞定,结果动态溢出

方法一:RAND 函数 + 排序(所有版本通用)

示例:A 列是一份姓名列表(A1:A8)。

  1. 在 B1 输入 =RAND(),生成一个 0~1 之间的随机小数
  2. 选中 B1,拖动填充手柄向下拖到 B8,让每一行都有各自的随机数
  3. 点击 B 列中任意一个数字
  4. Data›Sort & Filter›点击 ZA(降序排列),Excel 会跳出提示是否扩展选取范围,选择扩展(Extend the selection)

结果:姓名列表跟着 B 列的随机数一起被打乱重排。

📷 画面提示

B 列随机数排序后,姓名列表被打乱重排的效果

📌 随机数(RAND)是易失性函数,每次工作表重新计算都会变化。如果不想顺序一直变,排序完之后要把 B 列复制、再用「选择性粘贴 → 值」贴回原处,把随机数「定住」。


方法二:RANDARRAY + SORTBY 函数(Excel 365 / 2021)

  1. 用 RANDARRAY(8,1) 一次生成 8 行 1 列、0~1 之间的随机小数数组
  2. 用 SORTBY 函数按这组随机数排序:=SORTBY(A1:A8,RANDARRAY(8,1)),默认按升序排(顺序已经是随机的,不需要额外指定 order)
  3. 处理更长列表时,用 ROWS(A1:A8) 代替写死的 8,公式变成 =SORTBY(A1:A8,RANDARRAY(ROWS(A1:A8),1))
📷 画面提示

SORTBY + RANDARRAY 公式结果自动溢出,打乱后的姓名列表


函数速查

函数语法用途例子
RAND=RAND()生成 0~1 间的随机小数=RAND()
RANDARRAY=RANDARRAY(rows, [columns])生成随机小数数组=RANDARRAY(8,1)
SORTBY=SORTBY(array, by_array)按对应范围的值排序=SORTBY(A1:A8, RANDARRAY(8,1))

学完你会

常见错误

  • 排序后忘记把随机数「粘贴为值」,结果每次打开或编辑工作表,顺序又自动变了一次
  • 排序时 Excel 提示「扩展选取范围」却选了「继续目前选取」,导致只有辅助列被打乱、姓名列没有跟着动
  • RANDARRAY 写死的行数跟实际数据行数不一致,导致部分行没有随机数、排序结果不完整

Sources

Blog / Website:

  1. Randomize List
只记在你的浏览器里,换设备不会同步。