按指定的行列数生成序号,大家平时用得比较多的是 row 和 column 函数。
Excel 升级到 O365 版本后,有了专门的序列函数。
O365 简化了数组函数的调用,不需要按三键就能直接出结果。因此新函数不但可以生成单行、单列的序列,还可以生成一个二维序列区域。
函数说明:
作用:
在数组中生成一系列连续数字。
语法:
SEQUENCE(rows,[columns],[start],[step])
参数:
rows:必需,要返回的行数。
[columns]:可选,要返回的列数。
[start]:可选,序列中第一个数字。
[step]:可选,数组中每个连续值递增的值。
说明:
任何缺少的可选参数都将默认为 1。
数组可以是一行或一列,也可以是行和列的组合。
SEQUENCE 函数会返回一个数组,如果该数组是公式的最终结果,则会溢出。这意味着,当按下回车键时,Excel 将动态创建相应大小的数组范围。对于 Excel 表格中的数据,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。
Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
案例 1:
生成一列 1 到 20 的顺序编号。
解决方案 1:
在 A1 单元格中输入以下公式:
=SEQUENCE(20)
公式释义:
生成一个 20 行、1 列的序列值
默认起始值和步长都为 1
案例 2:
生成起始值为 5,步长为 5,一共 10 行的一列编号。
解决方案 2:
在 B1 单元格中输入以下公式:
=SEQUENCE(10,,5,5)
公式释义:
10,,:行数为 10,第二个参数缺省,表示默认列数为 1
5,5:起始值为 5,步长为 5
案例 3:
将 1 到 30 的数字按顺序排列成 5 行 6 列。
解决方案 3:
在 D1 单元格中输入以下公式:
=SEQUENCE(5,6)
公式释义:
生成一个 5 行 6 列的数组
起始值和步长都为 1
案例 4:
生成一行从星期一到星期日的顺序值。
解决方案 4:
在 K1 单元格中输入以下公式:
=TEXT(SEQUENCE(1,7,2),"aaa")
公式释义:
SEQUENCE(1,7,2):横向生成 1 行从 2 到 8 的顺序数组
TEXT(...,"aaa"):
将上述数组转换为星期的缩写
因为默认每星期的第一天是礼拜天,所以礼拜一为 TEXT(2,"aaa"),依次类推
案例 5:
将下图 1 中的姓名列转换为 3 行 3 列的数组区域。
效果如下图 2 所示。
解决方案 5:
在 F1 单元格中输入以下公式:
=INDEX(A:A,SEQUENCE(C2,D2,2))&""
公式释义:
SEQUENCE(C2,D2,2):生成一个 3 行 3 列的数组区域,其中的值从 2 开始,步长为 1 顺序递增,结果如下图所示
INDEX(A:A,...):返回 A 列中的第 n 个值,n 就是上图中的数组
&"":作用是将无意义的 0 值转换成文本,从而不让其显示,不过在本例中,即使不加也没有太大影响
Excel学习世界
转发、在看也是爱!