美文网首页
Excel高级函数Sequence用不了?用普通数组公式代替实现

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

作者: 以溪同学 | 来源:发表于2022-06-02 08:01 被阅读0次

    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用不了?用普通数组公式代替实现

          本文链接:https://www.haomeiwen.com/subject/qhafmrtx.html