Table of contents
该教程展示了如何利用新的SEQUENCE函数在Excel中快速生成一个日期列表,并使用自动填充功能用日期、工作日、月或年来填充一列。
直到最近,在Excel中只有一种简单的方法来生成日期--自动填充功能。 新的动态数组SEQUENCE函数的引入,使得用公式制作一系列的日期也成为可能。 本教程深入研究了这两种方法,以便你能选择最适合你的方法。
如何在Excel中填写日期系列
当你需要在Excel中用日期填充一列时,最快的方法是使用自动填充功能。
在Excel中自动填充日期系列
在一列或一行中填入以一天为增量的日期是非常容易的。
- 在第一个单元格中键入初始日期。
- 选择带有初始日期的单元格,将填充柄(右下角的一个绿色小方块)向下或向右拖动。
Excel将立即生成一系列日期,其格式与你手动输入的第一个日期相同。
用工作日、月或年填写一栏
要创建一系列的工作日、月或年,请执行以下操作之一。
- 如上所述,在一列中填入连续的日期。 之后,点击 自动填表选项 按钮并选择所需的选项,例如 填充月数 :
- 或者你可以输入你的第一个日期,右击填充柄,按住并拖动需要的单元格。 当你释放鼠标按钮时,将弹出一个上下文菜单让你选择需要的选项。 填充年限 在我们的案例中。
填充一系列以N天为单位递增的日期
要自动生成一系列的日、周、月或年,并带有一个 具体步骤 ,这是你需要做的。
- 在第一个单元格中输入初始日期。
- 选择该单元格,右键单击填充柄,根据需要拖过多个单元格,然后释放。
- 在弹出的菜单中,选择 系列 (最后一项)。
- 在 系列 对话框,选择 日期单位 兴趣的,并设置 步骤值 .
- 单击 "确定"。
更多的例子,请看如何在Excel中插入和自动填写日期。
如何在Excel中用公式制作一个日期序列
在之前的一个教程中,我们看了如何使用新的动态数组SEQUENCE函数来生成一个数字序列。 因为在Excel内部,日期被存储为序列号,所以该函数也可以很容易地生成一个日期序列。 你所要做的就是正确配置参数,正如下面的例子所解释的那样。
注意:这里讨论的所有公式只在支持动态数组的最新版本的Excel 365中有效。 在动态之前的Excel 2019、Excel 2016和Excel 2013中,请使用本教程第一部分中的自动填充功能。
在Excel中创建一系列的日期
要在Excel中生成一个日期序列,请设置SEQUENCE函数的以下参数。
SEQUENCE(行, [列], [开始], [步骤])- 行数 - 要填入日期的行数。
- 专栏 - 要填入日期的列数。
- 开始 - 以Excel能理解的格式表示起始日期,如 "8/1/2020 "或 "1-Aug-2020"。 为了避免错误,你可以通过使用DATE函数来提供日期,如DATE(2020, 8, 1)。
- 步骤 - 一个序列中每个后续日期的增量。
例如,要制作一个从2020年8月1日开始并增加1天的10个日期的列表,其公式为:。
=序列(10, 1, "8/1/2020", 1)
或
=序列(10, 1, date(2020, 8, 1), 1)
另外,你可以在预定义的单元格中输入日期(B1)、开始日期(B2)和步骤(B3)的数量,并在公式中引用这些单元格。 由于我们正在生成一个列表,列号(1)是硬编码。
=序列(b1, 1, b2, b3)
在最上面的单元格(在我们的例子中是A6)中键入下面的公式,按回车键,结果将自动溢出到指定的行和列的数量。
注意,在默认情况下 一般 为了正确显示,请确保将日期格式应用于溢出范围的所有单元格。
在Excel中制作一系列的工作日
要想只得到一系列的工作日,可以这样在WORKDAY或WORKDAY.INTL函数中包裹SEQUENCE。
由于WORKDAY函数将第二个参数中指定的天数添加到开始日期中,我们从中减去1以使开始日期本身包含在结果中。
例如,要生成一个从B2中的日期开始的工作日序列,公式为:。
=workday(b2-1, sequence(b1))
其中B1是序列大小。
提示和说明。
- 如果开始日期是星期六或星期日,系列活动将在下一个工作日开始。
- Excel的WORKDAY函数假定星期六和星期日是周末,要配置自定义的周末和假日,请使用WORKDAY.INTL函数。
在Excel中生成月份序列
要创建一系列以一个月为增量的日期,你可以使用这个通用公式。
日期( 年 ,序列(12)。 日 )在这种情况下,你把目标年份放在第1个参数中,把日期放在第3个参数中。 对于第2个参数,SEQUENCE函数返回从1到12的连续数字。 基于上述参数,DATE函数产生一系列的日期,如下面截图的左边部分所示。
=date(2020, sequence(12), 1)
要只显示 月名 ,为溢出范围设置以下自定义日期格式之一。
- mmm - 简称像 扬 , 2月 , 叁 ,等等。
- 嗯--完整的形式像 一月 , 2月 , 三月 ,等等。
结果是,只有月份名称会出现在单元格中,但基础值仍然是完整的日期。 在下面截图的两个系列中,请注意Excel中数字和日期的典型默认右对齐。
要生成一个以月为单位递增的日期序列,并且 从一个特定的日期开始 ,与EDATE一起使用SEQUENCE函数。
日期( 开始日期 , sequence(12, 1, 0))EDATE函数返回一个在开始日期之前或之后的指定月数的日期。 SEQUENCE函数产生一个由12个数字组成的数组(或你指定的数目),以迫使EDATE以一个月为增量向前移动。 请注意 开始 参数被设置为0,这样开始日期就会包括在结果中。
在B1中的开始日期,该公式是这样的。
=edate(b1, sequence(12, 1, 0))
注意:在完成一个公式后,请记得对结果应用一个适当的日期格式,以便它们能正确显示。
在Excel中创建一个年份序列
要使一系列的日期按年份递增,使用这个通用公式。
DATE(SEQUENCE( n , 1, YEAR( 开始日期 )), MONTH( 开始日期 ),DAY( 开始日期 ))在哪里? n 是你想要生成的日期的数量。
在这种情况下,DATE(year, month, day)函数以这种方式构造一个日期。
- 年 是由SEQUENCE函数返回的,该函数被配置为生成一个 n 1行1列的数字数组,从年份值开始,从 开始日期 .
- 月份 和 日 值是直接从开始日期提取的。
例如,如果你在B1中输入开始日期,下面的公式将输出一系列以一年为单位的10个日期。
=date(sequence(10, 1, year(b1)), month(b1), day(b1))
在被格式化为日期后,结果将看起来如下。
在Excel中生成一个时间序列
因为时间在Excel中是以小数形式存储的,代表一天的一小部分,所以SEQUENCE函数可以直接处理时间。
假设开始时间是在B1,你可以使用以下公式之一来产生一系列的10次。 区别只在于 阶梯 由于一天有24个小时,用1/24递增一小时,1/48递增30分钟,以此类推。
相隔30分钟。
=序列(10, 1, b1, 1/48)
相隔1小时。
=序列(10, 1, b1, 1/24)
相隔2小时。
=序列(10, 1, b1, 1/12)
下面的屏幕截图显示了结果。
如果你不想麻烦地手动计算步长,你可以通过使用时间功能来定义它。
SEQUENCE(行, 列, 开始, 时间( 小时 , 分钟 , 第二 ))在这个例子中,我们将在不同的单元格中输入所有的变量,如下面的截图所示。 然后,你可以使用下面的公式在单元格E2(小时)、E3(分钟)和E4(秒)中生成一个你指定的任何增量的时间序列。
=序列(b2, b3, b4, time(e2, e3, e4))
如何在Excel中创建一个月历
在最后一个例子中,我们将使用SEQUENCE函数与DATEVALUE和WEEKDAY一起创建一个月历,它将根据你指定的年份和月份自动更新。
A5中的公式如下。
=SEQUENCE(6, 7, DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1) + 1, 1)
这个公式如何运作。
你使用SEQUENCE函数生成一个6行(一个月中可能的最大周数)由7列(一周中的天数)组成的日期数组,并以1天为单位递增。 因此,...。 行数 , 专栏 和 步骤 争论没有引起任何问题。
中最棘手的部分是 开始 我们不能以目标月的第1天开始我们的日历,因为我们不知道它是一周中的哪一天。 因此,我们使用下面的公式来寻找指定月份和年份的第1天之前的第一个星期天。
DATEVALUE("1/"&B2&"/"&B1) - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1) ) + 1
第一个DATEVALUE函数返回一个序列号,在Excel内部系统中,该序列号在B2中代表月份的第1天,在B1中代表年份。 在我们的例子中,它是44044,对应于2020年8月1日。 在这一点上,我们有。
44044 - WEEKDAY(DATEVALUE("1/"&B2&"/"&B1)) + 1
WEEKDAY函数以1(周日)至7(周六)的数字形式返回目标月第1天所对应的星期。 在我们的例子中,它是7,因为2020年8月1日是周六。 我们的公式简化为。
44044 - 7 + 1
44044-7是4403,对应于2020年7月25日星期六。 由于我们需要星期天,我们加上+1修正。
这样,我们得到一个简单的公式,输出一个以4404开头的序列号阵列。
=序列(6, 7, 4404, 1)
将结果格式化为日期,你会得到上面截图中所示的日历。 例如,你可以使用以下日期格式之一。
- d-mmm-yy 来显示日期,如 20年8月1日
- mmm d 以显示月和日,如 8月20日
- d 只显示当天的情况
等等,但我们的目标是创建一个月历,为什么上个月和下个月的一些日期会出现呢? 为了隐藏这些不相关的日期,用下面的公式设置一个条件格式化规则,并应用 白色字体 颜色。
=MONTH(A5)MONTH(DATEVALUE($B$2 & "1"))
其中A5是你日历的最左边的单元格,B2是目标月份。
详细步骤请见如何在Excel中创建基于公式的条件格式化规则。
这就是你如何在Excel中生成一个日期序列的方法。 感谢你的阅读,希望下周在我们的博客上见到你!
供下载的实践工作手册
Excel中的日期顺序--公式示例(.xlsx文件)