Menu

Excel SEQUENCE 函数:生成数字、日期和日历

=SEQUENCE(5) 在一列中向下返回数字 1 到 5,=SEQUENCE(3,4) 填满 3 行 4 列。加上起始值和步长,就能生成任意序列,包括日期、随列表增长的行号和月历。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

=SEQUENCE(5) 从你输入公式的那个单元格开始,在一列中向下返回数字 1 到 5。加上第二个参数,它就会填满一个网格:=SEQUENCE(3,4) 给出 3 行 4 列,每一行横向从 1 数到 12。把 A2 中的 5 改成 8,这一列就会变长。

先是一列,再是一个网格
A2
ABCDEF
1RowsRows and columns
211234
325678
439101112
54
65
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

SEQUENCE 语法

=SEQUENCE(rows, [columns], [start], [step])
  • rows 是要返回的行数。
  • columns 是列数,默认为 1。
  • start 是第一个数字,默认为 1。
  • step 是每个数字比前一个增加多少。默认为 1,可以是负数或小数。

网格先横向填充:在 =SEQUENCE(3,4) 中,第一行是 1、2、3、4,第二行从 5 开始。要改为沿列向下数,就套上 TRANSPOSE:=TRANSPOSE(SEQUENCE(4,3))。

SEQUENCE 需要 Excel 2021、Excel 2024 或 Microsoft 365,在旧版本中显示 #NAME?。Google Sheets 也有同样的函数。

起始值和步长

最后两个参数设置第一个数字和数字之间的间隔:

不同的起始值和步长
A2
ABCDEFGHI
110 to 505 down to 1Across a row
210512345
3204
4303
5402
6501
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

=SEQUENCE(5,1,10,10) 从 10 开始,每次加 10。=SEQUENCE(5,1,5,-1) 从 5 开始倒数。=SEQUENCE(1,5) 是一行五列。要隔一个取一个,用步长 2:=SEQUENCE(10,1,1,2) 给出 1 到 19 的奇数。

自动给行编号

手动输入的行号,只要新增一行就过时了。改为统计名字的个数,让 SEQUENCE 为每个名字生成一个编号:

跟随列表变化的编号
A2
AB
1No.Name
21Ann
32Ben
43Cara
54Dan
65Eve
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

COUNTA 统计 B2:B8 中已填写的 5 个单元格,所以 A2 返回 1 到 5。在 B7 中输入 Finn,编号就会增加到 6。COUNTA 会统计任何已填写的单元格,所以列表中间不能有空行;在实际表格中把区域设大一些,比如 B2:B1000。如果列表为空,COUNTA 返回 0,SEQUENCE(0) 会显示 #CALC!。

日期序列

在 Excel 中,日期就是数字(每天加 1),所以日期可以作为起始值。下面每一行增加一天;公式需要日期格式,否则会显示 46083 这样的序列号:

从 B1 开始的一周日期
B2
ABCDE
1Start2026-03-02Weekly
22026-03-02Monday2026-03-02
32026-03-03Tuesday2026-03-09
42026-03-04Wednesday2026-03-16
52026-03-05Thursday2026-03-23
62026-03-06Friday
72026-03-07Saturday
82026-03-08Sunday
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

B2 列出 2026-03-02 到 2026-03-08,C2 给出每天是星期几,从星期一到星期日。E2 用步长 7 得到相隔一周的四个日期。改一下 B1,三列都会跟着变化。

按月生成时,步长 30 会逐渐偏差,因为每个月的天数不同。改为把 SEQUENCE 交给 EDATE,它按整月相加:=EDATE(B1,SEQUENCE(6,1,0)) 返回 3 月 2 日到 8 月 2 日(把单元格设置为日期格式)。(EDATE 和 EOMONTH 见加天数和月数。)

用 SEQUENCE 制作日历网格

六行七天足以容纳任何一个月。网格从 1 日当天或之前的那个星期日开始:DATE(2026,4,1)-WEEKDAY(DATE(2026,4,1))+1 从 4 月 1 日退回到那个星期日。单元格设置为 d 格式,所以每个单元格显示日期的天数,再用条件格式高亮 4 月的日期:

2026 年 4 月
A2
ABCDEFG
1SunMonTueWedThuFriSat
22930311234
3567891011
412131415161718
519202122232425
6262728293012
73456789
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

2026 年 4 月 1 日是星期三,所以网格开头是 3 月的 29、30 和 31 日。把 A2 中的两个 4(以及规则中的 4)改成另一个月份,日历就会重新绘制。如果要让其他月份的日期显示为空白,就在公式中逐个判断日期;LET 能让这个公式保持简短。

练习:相隔一周的日期

轮到你了
B2
AB
1Start2026-05-04
2Dates
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 在 B2 中沿列向下列出 5 个日期,从 B1 中的日期开始,每个相隔一周。

在其他公式中使用 SEQUENCE

SEQUENCE 常常是辅助工具,而不是最终结果。三种常见用法:

把 SEQUENCE 当作辅助
B2
ABCD
1ListTop 3Sum 1 to 101, 2, 3 repeated
2CaraCara551
3DanDan2
4AnnAnn3
5Eve1
6Ben2
73
点击单元格查看它的公式。修改数字或公式,表格会重新计算。
  • =INDEX(A2:A6,SEQUENCE(3)) 返回列表的前三项:Cara、Dan 和 Ann。在 Microsoft 365 和 Excel 2024 中,TAKE(A2:A6,3) 效果相同。
  • =SUM(SEQUENCE(10)) 不用逐个输入就能把 1 到 10 相加:55。
  • =MOD(SEQUENCE(6)-1,3)+1 重复 1、2、3、1、2、3,可以用来把各行轮流分配到三个组。

一个常见错误是把 SEQUENCE 放在结果无法溢出的位置。只要下方四个单元格中有任何一个有数据,=SEQUENCE(5) 就会显示 #SPILL!;清空它们或移动公式即可(见 #SPILL! 错误)。

常见问题

Excel 中 SEQUENCE 函数有什么用?

它返回一列从一个单元格溢出的数字:=SEQUENCE(5) 在一列中向下给出 1 到 5,=SEQUENCE(1,5) 在一行中横向给出 1 到 5,=SEQUENCE(5,1,10,10) 给出 10、20、30、40、50。

Excel 中如何生成日期序列?

用日期作为起始值:=SEQUENCE(7,1,B1) 返回从 B1 中的日期开始的连续七天,=SEQUENCE(4,1,B1,7) 返回相隔一周的四个日期。把结果设置为日期格式,否则会显示序列号。

Excel 中如何自动给行编号?

在编号列的第一行放 =SEQUENCE(COUNTA(B2:B100))。它统计 B 列中已填写的单元格,返回 1 到这个数,所以新增一个名字时,编号会自动出现,无需复制任何内容。

如何生成倒数的序列?

用负的步长:=SEQUENCE(5,1,5,-1) 返回 5、4、3、2、1。步长也可以是小数,例如 =SEQUENCE(5,1,0,0.25)。

哪些 Excel 版本有 SEQUENCE?

Excel 2021、Excel 2024 和 Microsoft 365。旧版本会显示 #NAME?;在旧版本中,可以先输入前两个值再拖动填充柄,或者向下填充 =ROW()-1。

Coddy 编程语言插图

和 Coddy 一起学编程

开始