![Excel智能日程表,你会吗?](http://p2.ttnews.xyz/loading.gif)
案例需求:
1、根据所选年月,自动显示当月日期天数
2、在当月所有日期中,对周六、日进行突出显示
问题分析:
1、计算当月最大天数
2、计算当月每天所对应的日期
3、突出显示周六、日所在列
解决方案:
1、DATE/YEAR/MONTH/DAY函数
2、WEEKDAY函数
3、条件格式
操作解析
①制作年月下拉效果
![Excel智能日程表,你会吗?](http://p2.ttnews.xyz/loading.gif)
针对选择的年份、月份,用数据有效性,来制作下拉选择。
设置的方法为:【数据】选项卡--【数据验证】--【设置】--【数据来源为“序列”】
②计算各月份的每个日期是星期几
=IF(D2="","",TEXT(WEEKDAY(DATE($A$2,$B$2,D2),1),"aaa"))
函数解析:
1、WEEKDAY函数
第一参数:具体的日期,在此处,用date函数,构建对应的年,月,日
第二参数:日期的类型,是数字1~7,在本例中,写【1】
2、TEXT函数
将计算第几天的结果,转化为周几的汉字
第二参数写"aaa"
③计算每月的最大日期
=IF(COLUMN(A1)<=DAY(DATE(IF($B$2=12,$A$2+1,$A$2),IF($B$2=12,1,$B$2+1),0)),COLUMN(A1),"")
1、计算某一月份的最大日期
原理:日期的本质是数字,所以它能够像数字一样,被用于计算和对比
当月的最大日期(最后一天)=下个月的第0天
举例:2017/12/31=2018/1/0
2、判断列号是否<=当月最大天数
随着列号变化而变化的函数是,COLUMN()
COLUMN(A1),表示计算A1单元格所在的列,计算结果为1
④用条件格式,突出显示周六、日所在列
说明:
1、如果C列中第1行的值为空"",那么单元格中不显示任何值,且边框底纹均取消
2、如果C列中第1行的值为六(或者OR)日,那么单元格中显示淡蓝色的底纹,黑色的字体
閱讀更多 看不出來的瘦子 的文章