RANDARRAY 是 Excel 365 和 Excel 2021 引入的一个函数,用于生成一个随机数数组。它的语法如下:
RANDARRAY([rows], [columns], [min], [max], [whole_number])
参数详解
rows(可选)
要生成的行数(默认值为 1)。例如,2 表示生成 2 行的随机数。
columns(可选)
要生成的列数(默认值为 1)。例如,1 表示每行只有 1 列。
min(可选)
随机数的最小值(默认值为 0)。例如,1 表示随机数最小是 1。
max(可选)
随机数的最大值(默认值为 1)。例如,24 表示随机数最大是 24。
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 中取出对应名字。
注意事项
避免重复抽中同一人
RANDARRAY 可能会生成相同的随机数(即同一个人被抽中两次)。
解决方法(确保不重复):
=LET(
randNums, RANDARRAY(24, 1, 1, 24, TRUE),
uniqueRand, UNIQUE(randNums),
INDEX(B2:B25, TAKE(uniqueRand, 2))
)
UNIQUE 确保随机数不重复TAKE(uniqueRand, 2) 取前 2 个不重复的随机数
每次计算都会刷新
按 F9 或编辑单元格时,随机结果会重新生成。如果想固定结果,可以 复制 → 右键 → “粘贴为值”。
总结
参数作用示例值rows生成的行数2(抽 2 人)columns生成的列数1(单列)min随机数最小值1(从第 1 行开始)max随机数最大值24(共 24 个名字)whole_number是否取整数TRUE(避免小数索引)根据您提供的文字,我从中提取了所有英文单词(包括函数名、参数名、值和键名),并识别了其中的缩写(如 min 和 max 是缩写,其他单词没有缩写形式)。对于缩写,我提供了其全部名称(例如,min 的全称是 “minimum”)。所有单词均基于文本中出现的顺序提取,并去除重复项。
提取的单词包括:
函数名(如 RANDARRAY、INDEX)。参数名(如 rows、columns)。布尔值(如 TRUE、FALSE)。键名(如 F9)。其他术语(如 whole_number)。
单词及缩写完整单词释义RANDARRAYExcel 函数,用于生成随机数数组。rows可选参数,表示要生成的行数(默认值为 1)。columns可选参数,表示要生成的列数(默认值为 1)。minminimum可选参数,表示随机数的最小值(默认值为 0)。maxmaximum可选参数,表示随机数的最大值(默认值为 1)。whole_number可选参数,表示是否生成整数随机数:TRUE 为整数,FALSE(默认)为小数。TRUE布尔值,用于 whole_number 参数时表示生成整数随机数。FALSE布尔值,用于 whole_number 参数时表示生成小数随机数(默认)。INDEXExcel 函数,用于从给定位置(如单元格区域)返回值。ROWSExcel 函数,用于计算指定区域的行数(例如 ROWS(B2:B25) 返回 24)。LETExcel 函数,用于分配名称到计算结果(在复杂公式中定义变量)。UNIQUEExcel 函数,用于返回列表中的唯一值(避免重复)。TAKEExcel 函数,用于返回区域中的行或列子集(例如取前 N 个值)。