WPS RANDARRAY()函数的用法(附带实例)
RANDARRAY 函数可以根据给定的条件生成指定数量的随机数组,函数语法格式如下:
【实例 1】生成 6 行 4 列最小值为 30、最大值为 100 的整数随机数组。在 C5 单元格输入公式:

图 1 生成整数随机数组
当生成整数时,需要设置第 5 个参数为 TRUE。
【实例 2】生成 6 行 4 列最小值为 30、最大值为 100 的小数随机数组。在 C15 单元格输入任意一个公式:

图 2 生成小数随机数组
当生成小数随机数组时,第 5 个参数可以省略,使用 RANDARRAY 函数生成数组后,可以使用 ROUND 函数,通过 ROUND 函数的第 2 个参数来设置小数位数。
【实例 3】将数据按行随机排序。在 F25 单元格输入任意一个公式:

图 3 将数据按行随机排序
使用 RANDARRAY 函数生成指定行数的随机数组,将生成的随机数组作为 SORTBY 函数的排序条件即可实现按行随机排序。
使用 RANDARRAY 函数生成的随机数组行数需要和随机排序的数据源行数相同,如果数据源行数太多,可使用 ROWS 函数计算数据源行数。
【实例 4】将数据按行随机排序后提取前 N 行,实现随机抽样、抽奖等功能。在 F35 单元格输入任意一个公式:

图 4 将数据按行随机排序后提取前N行
在对数据源随机排序后,可以使用 TAKE、CHOOSEROWS、INDEX 函数取指定数量的前 N 行。建议使用TAKE函数,其他函数仅供参考。

图 5 第3参数大于第4个参数
因为 RANDARRAY 函数的第 3 个参数值大于第 4 个参数值时,导致多个参数值之间逻辑错误,所以函数会返回错误值 #VALUE!。
2) 当第 3 个参数设置大于 1,同时第 4 个参数省略时,函数返回错误值 #VALUE!。在 C15 单元格输入公式:

图 6 第3个参数设置大于1,同时第4个参数省略
因为 RANDARRAY 函数的第 4 个参数省略后默认值为 1,所以当第 3 个参数设置值大于 1 时,导致多个参数值之间逻辑错误,因此函数返回错误值 #VALUE!。
3) 当第 3 个参数、第 4 个参数中任意一个参数指定为小数,同时第 5 个参数设置为 TRUE(整数模式)时,函数返回错误值 #VALUE!,在 C25 单元格输入公式:

图 7 第3个参数、第4个参数中任意一个参数指定为小数,同时第5个参数设置为TRUE
因为 RANDARRAY 函数的第 3 个参数设置为小数,同时第 5 个参数设置为 TRUE(整数模式),导致多个参数值之间逻辑错误,所以函数返回错误值 #VALUE!。
=RANDARRAY([行数], [列数], [最小数], [最大数], [整数])
- 行数:大于 0 的整数,省略参数时,默认值为 1;
- 列数:大于 0 的整数,省略参数时,默认值为 1;
- 最小数:数值(整数、小数),省略参数时,默认值为 0;
- 最大数:数值(整数、小数),省略参数时,默认值为 0;
- 生成模式:FALSE 表示小数,TRUE 表示整数。省略参数时,默认值为 FALSE。
【实例 1】生成 6 行 4 列最小值为 30、最大值为 100 的整数随机数组。在 C5 单元格输入公式:
=RANDARRAY(6,4,30,100,TRUE)如下图所示:

图 1 生成整数随机数组
当生成整数时,需要设置第 5 个参数为 TRUE。
【实例 2】生成 6 行 4 列最小值为 30、最大值为 100 的小数随机数组。在 C15 单元格输入任意一个公式:
=ROUND(RANDARRAY(6,4,30,100,FALSE),1) =ROUND(RANDARRAY(6,4,30,100),1)如下图所示:

图 2 生成小数随机数组
当生成小数随机数组时,第 5 个参数可以省略,使用 RANDARRAY 函数生成数组后,可以使用 ROUND 函数,通过 ROUND 函数的第 2 个参数来设置小数位数。
【实例 3】将数据按行随机排序。在 F25 单元格输入任意一个公式:
=SORTBY(B25:D30,RANDARRAY(6)) =SORTBY(B25:D30,RANDARRAY(ROWS(B25:D30)))如下图所示:

图 3 将数据按行随机排序
使用 RANDARRAY 函数生成指定行数的随机数组,将生成的随机数组作为 SORTBY 函数的排序条件即可实现按行随机排序。
使用 RANDARRAY 函数生成的随机数组行数需要和随机排序的数据源行数相同,如果数据源行数太多,可使用 ROWS 函数计算数据源行数。
【实例 4】将数据按行随机排序后提取前 N 行,实现随机抽样、抽奖等功能。在 F35 单元格输入任意一个公式:
=TAKE(SORTBY(B35:D40,RANDARRAY(6)),3) =CHOOSEROWS(SORTBY(B35:D40,RANDARRAY(6)),SEQUENCE(3)) =INDEX(SORTBY(B35:D40,RANDARRAY(6)),SEQUENCE(3,1),SEQUENCE(1,3))如下图所示:

图 4 将数据按行随机排序后提取前N行
在对数据源随机排序后,可以使用 TAKE、CHOOSEROWS、INDEX 函数取指定数量的前 N 行。建议使用TAKE函数,其他函数仅供参考。
RANDARRAY函数注意事项
1) 当第 3 个参数值大于第 4 个参数值时,函数返回错误值 #VALUE!,在 C5 单元格输入公式:=RANDARRAY(6,4,100,30,TRUE)如下图所示:

图 5 第3参数大于第4个参数
因为 RANDARRAY 函数的第 3 个参数值大于第 4 个参数值时,导致多个参数值之间逻辑错误,所以函数会返回错误值 #VALUE!。
2) 当第 3 个参数设置大于 1,同时第 4 个参数省略时,函数返回错误值 #VALUE!。在 C15 单元格输入公式:
=RANDARRAY(6,4,2,,TRUE)如下图所示:

图 6 第3个参数设置大于1,同时第4个参数省略
因为 RANDARRAY 函数的第 4 个参数省略后默认值为 1,所以当第 3 个参数设置值大于 1 时,导致多个参数值之间逻辑错误,因此函数返回错误值 #VALUE!。
3) 当第 3 个参数、第 4 个参数中任意一个参数指定为小数,同时第 5 个参数设置为 TRUE(整数模式)时,函数返回错误值 #VALUE!,在 C25 单元格输入公式:
=RANDARRAY(6,1,1.5,9,TRUE)如下图所示:

图 7 第3个参数、第4个参数中任意一个参数指定为小数,同时第5个参数设置为TRUE
因为 RANDARRAY 函数的第 3 个参数设置为小数,同时第 5 个参数设置为 TRUE(整数模式),导致多个参数值之间逻辑错误,所以函数返回错误值 #VALUE!。