日期的本质是数字
知道这一特性,我们就可以将数字按1递增,这样日期就自动变化了。
DATE函数
格式:DATE(年,月,日)
如上图所示,在D2单元格使用DATE函数引用了A1、A2、A3单元格,得出了2022年4月21日的日期。根据日期本质是数字的特性,在D2单元格上加1,即可得出4月22日这个日期。依次类推,从E2单元格开始,只需向右填充单元格,之后的日期也就自动生成了。如下图:
日期显示为星期
首先我们将从D2到G2的数据复制一遍,如图:
如果你想以星期一这样的形式显示,把 aaa 改成 aaaa 就行了。如果你想显示成周一这种形式,把 aaa 改成 "周"aaa就可以了。由于方法都大同小异,这里就不上图了。
使用数值调节钮显示日期
效果如下图所示:
若想实现上述功能,我们得首先启用开发工具。步骤是 文件→选项→自定义功能区,勾选开发工具,最后点击确定,如下图:
按钮的大小,大家按照个人喜好调节大小即可。接下来我们要设置控件格式,具体步骤是右键按钮,点击设置控件格式就行了。
限定日期显示
由于一个月最多31天,因此我们需要准备31个单元格。但有的月只有30天,特别是平年的2月只有28天。这样就会导致我们不想要的日期也会被显示出来。如下图:
因此有必要加上条件来限制日期的显示:当实际月份大于DATA函数中取值的月份时,月份不显示。
使用 IF 和 MONTH 函数即可解决。
IF函数格式:=IF(条件,符合条件的结果,不符条件的结果)
MONTH函数:=MONTH(日期),返回值为代表月份的数字,如4月30返回4,5月1返回5。
那么结合以下的图片:
=IF(MONTH(E2)>A2,"",D2+1)
但是我们发现在EXCEL中无法自己引用自己,所以要将公式中的E2改为D2+1。在向右填充的过程中,A2会变成B2、C2......,因此我们要将A2进行绝对引用(快捷键为F4或Fn+F4),这样A2的值就不会变了。
因此修改后的公式为:
=IF(MONTH(D2+1)>$A$2,"",D2+1)
但是公式还是有点缺陷的,比如2月:
IFERROR函数:如果公式报错,显示为特定值。
格式:=IFERROR(公式,若报错显示的特定值)
如果公式报错,显示为空值就好了,所以最终的公式为:
=IFERROR(IF(MONTH(D2+1)>$A$2,"",D2+1),"")
这样动态日期就全部完成了。