数组中没有给初始值_这两个新函数,改写了数组扩展方式

介绍了Office365新增的SEQUENCE和RANDARRAY函数的基本语法及应用场景,通过实例展示了如何利用这两个函数简化数据处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HI,大家好,我是星光。

今天要聊两个Office 365中的新函数:SEQUENCE和RANDARRAY。

先来说SEQUENCE,这个单词是序列的意思,顾名思义,主要作用是制作序列值数组。

它的基本语法如下:

=SEQUENCE(行数,[列数],[初始值],[步长])

第1个参数是必须的,其余均可选,均默认为1。

比如,生成1-10之间步长为1的序列数组,公式如下▼

=SEQUENCE(10)

725bc8610c7067a420bcf3496ba11d55.png

生成10行2列初始值为1的序列数组,公式如下▼

=SEQUENCE(10,2)

f1be91d850fdaaa44cfb82e9ec836dc8.png

生成10行2列初始值为2且步长为2的偶数序列数组,公式如下▼

=SEQUENCE(10,2,2,2)

74192b46e3f90a9e5dd3fde19098c694.png

看起来好像这函数没啥用?——单独来说,确实如此,至少不是非用不可,使用ROW和COLUMN函数完全可以代替它。不过我们前面说过,这俩函数主要是为支持动态数组运算而产生的。

我举个例子,将下图所示A列的人名,转换为N行M列,比如N行4列。

58d4d0c9025177dbdef6d29043d0e856.png

传统的函数需要借助INT函数构建一个索引位置参数,将公式向下向右复制填充才可获取全部结果▼

传统解法▼

=OFFSET($A$1,ROW(A1)*4-4+COLUMN(A1),0)&"")

而365函数借助动态数组功能,只需要在一个单元格输入公式即可获取全部结果▼

365函数解法▼

=INDEX(A2:A100,SEQUENCE(5,4))&""

eec403c3625c17ef60733ee965527e56.gif

不但效率得到了极大提升,而且由于它的结果是一个数组,还可以嵌套在其它函数中继续使用。

……

然后再给大家聊一下RANDARRAY。

RAND是随机值,ARRAY是数组,两者相加,该函数的主要作用也就是生成一个随机值数组。

基本语法如下▼

=RANDARRAY([行数],[列数],[最小值],[最大值],[小数还是整数])

所有的参数都是可选的,如果省略掉所有参数,它就基本等同于RAND函数了。

举几个例子还是。

生成包含10行1列的0-1之间的随机值数组▼

=RANDARRAY(10)

ee2fc9d67f6e6e6a2e7988c88982520b.png

生成包含10行2列的1-100之间整数型随机值数组▼

=RANDARRAY(10,2,1,100,TRUE)

077ffbc29e1b6ce146252864d07091d2.png

看起来还是没啥用?那么还是举一个实用小案例。

如下图所示,从A列名单中,随机抽取3个人发送百万现金红包——打个响指,请领了红包又看到这篇推文的朋友自觉把红包金额上缴一半到我这,谢谢。

c0e38841933b7dda4f4460bf21e5aad4.gif

实现公式如下▼

=INDEX(SORTBY(A2:A14,RANDARRAY(13)),SEQUENCE(3))

RANDARRAY(13)生成13个随机值,SORTBY据此将A2:A14区域的数据随机排序,最后再使用INDEX函数取前3个即为结果。

……

再举一个稍微复杂一点的同类案例:

如下图所示,A列是一个班级的人名,现在需要把他们随机打散,拆成N行3列——这就好比现实中的考场座次安排。

bb2b7e26c6d8808c1f955bb2805a9a81.gif

C2单元格输入以下公式▼

=IFERROR(

INDEX(SORTBY(A2:A14,RANDARRAY(13)),SEQUENCE(10,3)),"")

公式看起来有点复杂,但一层层剥开并不难理解。

RANDARRAY(13)生成13个随机值,SORTBY据此将A2:A4区域的数据随机排序。

cb4c64b0dd192e6676f116caf3bcfbfb.png

再使用SEQUENCE(10,3)函数,返回一个10行3列初始值和步长均为1的内存序列数组。

2cb4a51d3904b7cdabff359f70aca251.png

用INDEX根据序列数组按图索骥即可取出姓名;最后再使用IFERROR函数屏蔽错误值即可。

图文制作:看见星光

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值