Excel高级函数Sequence用不了?试试用普通数组公式代替生成一维和二维序列
Microsoft 365支持动态数组功能,同时发布了许多动态数组函数,例如:sequence,filter以及unique等等。有些函数wps最新版已经支持,你可以免费使用。
但是有些同学因为没法更新软件,但又想实现新函数的功能,为此,以溪整理了这些新函数的代替版,希望对你有帮助。
「如果有用,记得关注分享和收藏」
Sequence序列函数使用语法
sequence函数主要用于生成一组等差数列的序列数组。
例如,生成10000个序号,使用下面的公式即可。
=sequence(10000)
函数语法如下=SEQUENCE(行,[列],[开始数],[增量])
图片来自office支持
Sequence函数案例与替代方案
Sequence本质上是一个「等差数列生成器」,因此使用等差数列通项公式,搭配数组扩展特性,就可以使用普通数组公式实现Sequence函数效果。
生成1行3列,开始于2,增量为5的序列
sequence函数法:
=SEQUENCE(1,3,2,5)
普通数组公式法:
=2+(TRANSPOSE(ROW(1:3))-1)*5
数组公式使用方法
需提前选中1行3列数组区域
再输入公式
最后需要按数组确认键CTRL+SHIFT+回车 确认公式
效果展示
效果展示
由于是1行3列,我们使用row(1:3),可以生成1列3行的数组,然后使用transpose函数,将其转置为1行3列。
不使用column函数直接生成1行3列,是由于如果列太多,懒得写字母,所以其实TRANSPOSE(ROW(1:3))可以写成column(A:C)
可以看到普通数组公式法,其实就是等差数列的通项式。
=2+(TRANSPOSE(ROW(1:3))-1)*3
其中a1就是函数参数中的开始项,d就是增量(公差),而n就是项次{1,2,3...},也就是TRANSPOSE(ROW(1:3))。
因此如果你需要1行5列,只需要把项次这里的row(1:3)改成row(1:5)即可生成5行。
生成2行3列,开始于5,增量为10的序列
sequence函数除了生成一维数组序列,也支持生成二维数组序列。且只需要更改行列数字即可。
sequence函数法:
=SEQUENCE(2,3,5,10)
普通数组公式法:
=5+(TRANSPOSE(ROW(1:3))-1)*10+0+(ROW(1:2)-1)*3*10
可以注意到第一行与第二行之间数字相差30
二维数组理解起来,稍微复杂一些,涉及到「数组的扩展性」。
举个例子来说,两个数组之间进行运算,最终得到的数组行列大小,取自这两个数组的最大行和最大列。
因此我们要形成2行3列的二维数组,就可以通过1行3列数组与2行1列行两个一维数组进行计算得来。
普通数组公式法的理解,可以分为两步:
-
首先生成1行3列的,首项为5,公差为10的等差序列,对应公式5+(TRANSPOSE(ROW(1:3))-1)*10。
-
其次生成2行1列的,首项为0,公差为最大列数×1行3列的公差,也就是3×10,对应公式0+(ROW(1:2)-1)*3*10。
-
最后将两个数组相加,即可得到需要的序列数组。
公式为便于理解,未做简化,实际应用中,可以根据运算式做简化。
以上是Sequence函数功能使用普通数组函数实现方法,有更多问题可留言讨论或在以溪同学号众工回复「群」,加入Excel讨论。
网友评论