利用 Excel 函数随机抽取(附示例)

RANDARRAY 是 Excel 365 和 Excel 2021 引入的一个函数,用于生成一个随机数数组。它的语法如下:

复制代码
RANDARRAY([rows], [columns], [min], [max], [whole_number])

参数详解

  1. rows(可选)

    • 要生成的行数(默认值为 1)。
    • 例如,2 表示生成 2 行的随机数。
  2. columns(可选)

    • 要生成的列数(默认值为 1)。
    • 例如,1 表示每行只有 1 列。
  3. min(可选)

    • 随机数的最小值(默认值为 0)。
    • 例如,1 表示随机数最小是 1。
  4. max(可选)

    • 随机数的最大值(默认值为 1)。
    • 例如,24 表示随机数最大是 24。
  5. whole_number(可选)

    • TRUE:生成整数随机数。
    • FALSE(默认):生成小数随机数。

在随机抽奖中的应用

你的需求是 从 B2:B25 随机抽取 2 人,所以公式是:

复制代码
=INDEX(B2:B25, RANDARRAY(2, 1, 1, ROWS(B2:B25), TRUE))
  • 2 → 生成 2 行(抽 2 人)
  • 1 → 每行 1 列
  • 1 → 随机数最小是 1(对应 B2)
  • ROWS(B2:B25) → 计算 B2:B25 的行数(24),作为最大值
  • TRUE → 生成整数(避免小数索引)

这样,RANDARRAY 会生成 2 个 1~24 的随机整数INDEX 再用它们从 B2:B25 中取出对应名字。


注意事项

  1. 避免重复抽中同一人
    RANDARRAY 可能会生成相同的随机数(即同一个人被抽中两次)。
    解决方法(确保不重复):

    复制代码
    =LET(
        randNums, RANDARRAY(24, 1, 1, 24, TRUE),
        uniqueRand, UNIQUE(randNums),
        INDEX(B2:B25, TAKE(uniqueRand, 2))
    )
    • UNIQUE 确保随机数不重复
    • TAKE(uniqueRand, 2) 取前 2 个不重复的随机数
  2. 每次计算都会刷新

    • F9 或编辑单元格时,随机结果会重新生成。
    • 如果想固定结果,可以 复制 → 右键 → "粘贴为值"

总结

参数 作用 示例值
rows 生成的行数 2(抽 2 人)
columns 生成的列数 1(单列)
min 随机数最小值 1(从第 1 行开始)
max 随机数最大值 24(共 24 个名字)
whole_number 是否取整数 TRUE(避免小数索引)


示例 下载 地址

相关推荐
linx29511 分钟前
第七章 · 标准库容器、算法与 ranges
c语言·开发语言·数据结构·c++·算法
Logic10127 分钟前
C语言/数据结构位运算题解:异或XOR找出独特数字的索引位置——成对数字在两侧
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
橘子汽水16828 分钟前
Leetcode 763,45 划分字母区间 跳跃游戏II
数据结构·算法·leetcode
kiracrimson40 分钟前
建堆的两种算法:O(N) 和 O(N log N) 差在哪里
数据结构
福兮说1 小时前
在浏览器里写一个“够用就好“的 Excel 公式求值器
前端·javascript·excel·编译原理
天天喝旺仔1 小时前
Git 内部原理深度解析:从 blob/tree/commit 对象到 packfile 与垃圾回收
数据结构·数据库·git·算法·哈希
Edward The Bunny2 小时前
Leetcode Hot 100
数据结构·算法
xiangyun6113 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun6114 小时前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
OKkankan15 小时前
LangChain 能力详解!:输出解析、RAG、向量数据库与 Retriever 检索器
数据结构·python·langchain·ai应用