B4=if(weekday($k$3,2)=b3,$k$2,””),如果开学第一天是周一,则在第1个单元格中填入开学的日期。
C4=if(b4<>””,b4+1,if(weekday($k$3,2)=b3,$k$2,””)),如果前一个单元格中有日期了,则应该执行前一个日期加1;如果前一个单元格是空的,则表示前一个单元格不是开学第一天,需要继续判断weekday()。
B5=if(B4<>””,day(B4),””)。如果上面的单元格中有日期,则取这一天的“日”;如果上面的单元格为空,也就是没有日期,则显示空。
从第二组日期开始,因为不存在计算是否为开学第一天的问题,所以只要将上一个日期加1就可以了,所以
B6=H4+1;C6=B6+1,并向右复制C6。
再来看右边真正的显示区域,本来是只要将单元格所对应的辅助列中相应“日”的数据填充进去就可以了,但是为了能把开学第一天和每个月的第一天能突出显示出来,需要单元格的公式中加上2个if()嵌套。
公式是这样的:N4=if(b4<>””,if(b4=$k$3,month($k$3)&”月”,if(b5=1,month(b4)&”月”,””)),””),然后将公式复制到其他单元格就可以了。