打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
这两个新函数,改写了数组扩展方式

HI,大家好,我是星光。

今天要聊两个Office 365中的新函数:SEQUENCE和RANDARRAY。
先来说SEQUENCE,这个单词是序列的意思,顾名思义,主要作用是制作序列值数组。
它的基本语法如下:
=SEQUENCE(行数,[列数],[初始值],[步长])
第1个参数是必须的,其余均可选,均默认为1。
比如,生成1-10之间步长为1的序列数组,公式如下▼
=SEQUENCE(10)
生成10行2列初始值为1的序列数组,公式如下▼
=SEQUENCE(10,2)
生成10行2列初始值为2且步长为2的偶数序列数组,公式如下▼
=SEQUENCE(10,2,2,2)
看起来好像这函数没啥用?——单独来说,确实如此,至少不是非用不可,使用ROW和COLUMN函数完全可以代替它。不过我们前面说过,这俩函数主要是为支持动态数组运算而产生的。
我举个例子,将下图所示A列的人名,转换为N行M列,比如N行4列。
传统的函数需要借助INT函数构建一个索引位置参数,将公式向下向右复制填充才可获取全部结果▼
传统解法▼
=OFFSET($A$1,ROW(A1)*4-4+COLUMN(A1),0)&'')
而365函数借助动态数组功能,只需要在一个单元格输入公式即可获取全部结果▼
365函数解法▼
=INDEX(A2:A100,SEQUENCE(5,4))&''
不但效率得到了极大提升,而且由于它的结果是一个数组,还可以嵌套在其它函数中继续使用。
……
然后再给大家聊一下RANDARRAY。
RAND是随机值,ARRAY是数组,两者相加,该函数的主要作用也就是生成一个随机值数组。
基本语法如下▼
=RANDARRAY([行数],[列数],[最小值],[最大值],[小数还是整数])
所有的参数都是可选的,如果省略掉所有参数,它就基本等同于RAND函数了。
举几个例子还是。
生成包含10行1列的0-1之间的随机值数组▼
=RANDARRAY(10)
生成包含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列——这就好比现实中的考场座次安排。
C2单元格输入以下公式▼
=IFERROR(
INDEX(SORTBY(A2:A14,RANDARRAY(13)),SEQUENCE(10,3)),'')
公式看起来有点复杂,但一层层剥开并不难理解。
RANDARRAY(13)生成13个随机值,SORTBY据此将A2:A4区域的数据随机排序。
再使用SEQUENCE(10,3)函数,返回一个10行3列初始值和步长均为1的内存序列数组。
用INDEX根据序列数组按图索骥即可取出姓名;最后再使用IFERROR函数屏蔽错误值即可。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
几个全新的超级函数,都来认识一下
介绍几个全新的超级函数,都来认识一下
教你在 Excel 中生成随机数的 5 种方法
Microsoft 365 | 一个函数帮你轻松解决随机抽奖等问题
新函数SEQUENCE,快速将一列数据转换为多列,非常好用!
office365真有传说中的那么好用吗?还真是!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服