我们之前先后聊了UNIQUE、SORT、FILTER和XLOOKUP,本章再聊剩下两个函数:SEQUENCE和RANDARRAY。先来说SEQUENCE,这个单词是序列的意思,顾名思义,主要作用是制作序列值数组。=SEQUENCE(行数,[列数],[初始值],[步长])比如,生成1-10之间步长为1的序列数组,公式如下▼生成10行2列初始值为2且步长为2的偶数序列数组,公式如下▼看起来好像这函数没啥用?——单独来说,确实如此,至少不是非用不可,使用ROW和COLUMN函数完全可以代替它。不过我们前面说过,这俩函数主要是为支持动态数组运算而产生的。我举个例子,将下图所示A列的人名,转换为N行M列,比如N行4列。借助动态数组功能,只需要在一个单元格输入公式即可获取全部结果▼=INDEX(A2:A100,SEQUENCE(5,4))&””
不但效率得到了极大提示,而且由于它的结果是一个数组,还可以嵌套在其它函数中继续使用。RAND是随机值,ARRAY是数组,两者相加,该函数的主要作用也就是生成一个随机值数组。=RANDARRAY([行数],[列数],[最小值],[最大值],[小数还是整数])所有的参数都是可选的,如果省略掉所有参数,它就基本等同于RAND函数了。生成包含10行2列的1-100之间整数型随机值数组▼=RANDARRAY(10,2,1,100,TRUE)
如下图所示,从A列名单中,随机抽取3个人发送百万现金红包——打个响指,请领了红包又看到这篇推文的朋友自觉把红包金额上缴一半到我这,谢谢。=INDEX(SORTBY(A2:A14,RANDARRAY(13)),SEQUENCE(3))RANDARRAY(13)生成13个随机值,SORTBY据此将A2:A14区域的数据随机排序,最后再使用INDEX函数取前3个即为结果。
如下图所示,A列是一个班级的人名,现在需要把他们随机打散,拆成N行3列——这就好比现实中的考场座次安排。INDEX(SORTBY(A2:A14,RANDARRAY(13)),SEQUENCE(10,3)),””)
RANDARRAY(13)生成13个随机值,SORTBY据此将A2:A4区域的数据随机排序。再使用SEQUENCE(10,3)函数,返回一个10行3列初始值和步长均为1的内存序列数组。用INDEX根据序列数组按图索骥即可取出姓名;最后再使用IFERROR函数屏蔽错误值即可。打个响指,本章结束后我们365函数系列的图文教程就算告一段落了。等到LET函数正式发布时,我们再详细聊一下如何使用LET函数实现编程中变量式的编程,这会让函数短、快、灵的特点发挥的淋漓尽致。 图片部分来自网络,如有侵权请联系QQ897219494,或者发布邮箱897219494@qq.com
技能大全,高效工具 »
Office 365函数新世界 :SEQUENCE和RANDARRAY函数