首页 > 编程笔记 > Office笔记 阅读:31

WPS RANDARRAY()函数的用法(附带实例)

RANDARRAY 函数可以根据给定的条件生成指定数量的随机数组,函数语法格式如下:
=RANDARRAY([行数], [列数], [最小数], [最大数], [整数])

【实例 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!。

相关文章