本周同学会专栏,我分两期,简单介绍一下Excel日历的制作及应用。
今天,先跟我来用最简单的公式,制作一张Excel动态日历。
▲ 目标效果
第1步:设计框架
我们将日历固定到7列——周一到周日,最多需要6行就可以展示一个月的所有天数。
B2、D2单元格用来选择年份和月份,B4:H4区域输入周一至周日。
第2步:编写公式
日历中看似有很多单元格,但实际上最关键的一个单元格就是B5单元格。B5单元格的公式确定了,后面的单元格只要依次加1就OK。
B5单元格的日期怎么确定呢?
由于周一到周日的位置是固定的,而每个月的第1天究竟是周几是不固定的,因此我们要做判断:
如果月份第1天恰好是周一,那B5单元格就应该返回当月的1号这天的日期;否则,就根据当月1号实际是星期几来计算这一天的日期。
以2021年1月1日为例,这一天实际是星期五,应该填入F5单元格。因此,B5单元格应该是往前推4天,即2020年12月28日(用2021/1/1-5 1)。
把以上的逻辑用公式表达出来,B5单元格的公式为:
=IF(WEEKDAY(DATE($B$2,$D$2,1),2)=1,DATE($B$2,D$2,1),DATE($B$2,$D$2,1)-WEEKDAY(DATE($B$2,$D$2,1),2) 1)
其它单元格只要依次 1天就好,因此最简单的公式就是用上一个单元格加1,比如C5单元格公式:=B5 1。