这个只是年份日期的动态,一旦把考勤状态填写上,就不管月份怎么变,都是只有固定一个考勤状态,那每年的每个月的考勤状态是不一样的,病假,休息日,法定节假日等都不一样,比如:现在是5月份,如果选择5月份,就是5月份的输入的日考勤状态,如果选择4月份,就是4月份的每一天的考勤状态,5月份之前的能否保留,5月份之后的还没到,就是空白,能否设置全部动态?否则不管选择哪一年哪个月,全部都是一样的上班休学,这个动态的考勤表又有什么意义呢?直接全部固定一个月一个月安排不也一样吗?
标红部分能动态变化,根据实际年和月份值判断2月最后天数是28还是29,还是30,31。
==================================
通常用到EOMONTH()函数,判断后面日期29/30/31这几个单元格是否需要填入空值(“”)。
下面用到一个超牛、玄妙的公式来判断。
=IF(MONTH(DATE($B$5,$E$5,COLUMN(A6)))>$E$5,"",DAY(DATE($B$5,$E$5,COLUMN(A6))))
=IF(MONTH(DATE($B$5,$E$5,COLUMN(AB6)))>$E$5,"",DAY(DATE($B$5,$E$5,COLUMN(AB6))))
=IF(MONTH(DATE($B$5,$E$5,COLUMN(AC6)))>$E$5,"",DAY(DATE($B$5,$E$5,COLUMN(AC6))))
解析:
一、搞定日期几号?
DATE($B$5,$E$5,COLUMN(A6))获得所选“年和月”对应日的日期值——注意DATE(year,month,day)函数中,如果day大于指定月中的天数,则day会从该月的第一天开始加上该天数。 例如,DATE(2008,1,35) 返回表示 2008 年 2 月 4 日的序列数。
到COLUMN(AB6)时列号为28,表示2月28日,即最后一天。
到COLUMN(AC6)时列号为29,DATE($B$5,$E$5,COLUMN(AC6))得到的值自动跳转到:2022/3/1。
触发IF判断语句的条件成立(ture),则返回空值(“ ”)。
二、搞定星期几
如果日期为空则返回空,
如果日期非空,则返回日期。
公式容易理解,关键是日期如何显示成星期几形式?
以上全部搞定。