在一个单元格中有开始日期,另外一个单元格中有结束日期时,想通过 Excel 已有的函数,自动生成两者之间的日期,我们大概知道,肯定是最经典的拖拉功能,就像生成连续数字那样,好的,那我们开始尝试一下。

为了试验方便,我们打算连续生成 2015/11/10 到 2016/8/10 之间的连续日期。

首先,把这两个日期分别填入 A1 和 B1,我们让日期从 A2 开始生成,选中 A2,输入下面的公式:


​=IF(A$1+ROW(A1)<B$1,TEXT(A$1+ROW(A1),"e-mm-dd"),"")​


如下图。

Excel 中连续生成开始日期和结束日期之间的日期_连续

回车后生成第一个日期,然后鼠标移到右下角,点击,拖拉,一直到生成最后一个日期为止,如图。

Excel 中连续生成开始日期和结束日期之间的日期_连续_02

生成后,发现每个月份的日期都是正常的,如图。

Excel 中连续生成开始日期和结束日期之间的日期_excel_03

先解释下公式的大概意思。


​A$1就是A1单元格,ROW(A1)就是A1的行号,B$1是B1单元格。​


IF语句的意思是:如果A1单元格内容+A1行号小于B1单元格的内容,那就在当前单元格填入A1加上行号后的值,格式为yyyy-MM-dd,否则填入空字符串。

所以生成日期后,我们可以看到生成的日期是 2015/11/11 到 2016/8/09 之间的连续日期,少两天,所以我们需要把公式中改一改就 OK 了,改后如下:


​=IF(A$1+ROW(A1)-1<=B$1,TEXT(A$1+ROW(A1)-1,"e-mm-dd"),"")​


如果想要 yyyy-MM-dd 格式的日期改为 yyyy/MM/dd,那么把参数”e-mm-dd”改为”e/mm/dd”,其它同理。