欢迎光临散文网 会员登陆 & 注册

Excel高级函数Sequence用不了?用普通数组公式代替实现

2022-06-02 08:01 作者:以溪同学  | 我要投稿

Excel高级函数Sequence用不了?试试用普通数组公式代替生成一维和二维序列

Microsoft 365支持动态数组功能,同时发布了许多动态数组函数,例如:sequencefilter以及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. 需提前选中1行3列数组区域

  2. 再输入公式

  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. 首先生成1行3列的,首项为5,公差为10的等差序列,对应公式5+(TRANSPOSE(ROW(1:3))-1)*10

  2. 其次生成2行1列的,首项为0,公差为最大列数×1行3列的公差,也就是3×10,对应公式0+(ROW(1:2)-1)*3*10

  3. 最后将两个数组相加,即可得到需要的序列数组。

公式为便于理解,未做简化,实际应用中,可以根据运算式做简化。

以上是Sequence函数功能使用普通数组函数实现方法,有更多问题可留言讨论或在以溪同学号众工回复「群」,加入Excel讨论。


Excel高级函数Sequence用不了?用普通数组公式代替实现的评论 (共 条)

分享到微博请遵守国家法律