在Excel中填充序列“1、2、3、4……”很简单,只需要输入1后,下拉填充即可。但是如果需要填充序列“1、1、1、2、2、2、3、3、3、4、4、4……”,就无法采用下拉填充解决了。

本文就和大家分享如果需要填充这种序列的两种解决办法,本文以日期填充为例进行说明。填充数字序列或序列中每个值重复次数不同,可比照本文的方法来解决。

一、案例

如下图所示,A2:A16为一列日期数据。要求每3行日期相同,每隔3行日期增加一天。


二、解决方法

方法一:排序法

①在A2单元格输入起始日期,拖动填充柄向下填充日期至终止日期(此处为“2021/12/5)。

②在B列辅助列填充序列(从1至5),复制粘贴该序列,保证该序列的个数和每个日期重复次数相同。本例中每个日期重复3次,序列1至5共3个。

③选中B2:B16任一单元格,单击【数据】-【升序】,排序后的结果如下图所示:

④选中A2:A16单元格,按F5键打开【定位条件】对话框,选择【空值】

单击确定后,所有的空单元格被选中。输入 =A2,按Ctrl+Enter键即可。

具体操作如下图:

填充日期之后,删除辅助列。

排序法适用于重复次数较少的情况。如果每个日期重复次数较多,排序法不适用。

方法二、MOD函数法

如下图所示,在A2单元格输入起始日期“2021/12/1”。在A3单元格输入公式 =IF(MOD(ROW()+1,3)=0,A2+1,A2)

拖动A3单元格填充柄向下复制公式。


公式解析:

(1)ROW()返回公式所在单元格的行号。如下图所示,在C2单元格的公式 =ROW()返回“2”。

(2)MOD函数用于返回两数相除的余数,如MOD(3,2)返回1,即3除以2的余数是1。

(3)MOD(ROW()+1,3)返回值如下图所示:

观察MOD返回值,可以看到,每隔3行MOD返回值为0。

(4)=IF(MOD(ROW()+1,3)=0,A2+1,A2)表示当MOD返回值为0时,比上一行日期增加1天,否则与上一行日期相同。

MOD函数法比排序法更为灵活,而且如每个日期重复次数较多时,MOD函数法也能轻松解决问题。修改MOD函数的第二个参数可以灵活控制每个日期的重复次数。