怎么用 Excel 制作动态日历
优化后标题:《用Excel制作动态日历,让您眼前一亮!》
大家好,我是在研究日历的小爽~
之前小兰分享过如何用数据透视表制作日历~
想知道如何使用函数制作这样炫酷的日历表吗?
今天,让我们一起学习如何使用日历函数
操作非常简单,赶紧学习吧~
▋首先创建一个模板
❶ 插入一个数值调整器控件。
在【开发工具】选项卡中,单击【插入】-【数值调节控件】:
PS. 如果没有【开发工具】选项卡,请通过【文件】-【选项】-【高级】打开。
❷ 点击鼠标右键,选择【设置控件格式】。
将「单元格链接」指定为单元格C2,其他参数请参照下图所示:
现在,月份会随着数值调节控件联动了。
1、撰写函数
制作完模板后,让我们来编写函数公式。
简单操作如下图所示:
向下移动,值为上一个单元格的值加7;
向右移动,值为左边单元格的值加1。
换句话说,只需确定第一个单元格的日期,就能确定其他单元格的日期。
那么我们如何确定第一个单元格的日期呢?
只需确定每月1日前一个周一的日期,即可确定第一个单元格的日期。
这涉及到一个数学逻辑问题。
例如,2021年7月1日是周四,根据以下图示:
7月1日的日期-4+1,即是7月1日前的第一个周一的日期。
所以,每月1日的前一个周一 = 每月1日的日期-每月1日的星期数+1。
我们了解:DATE函数可返回日期。
=DATE(年,月,日)
WEEKDAY函数可获取日期的星期数。
WEEKDAY函数的语法规则:
=WEEKDAY(serial_number[return_type])=WEEKDAY(日期2)
通常我们以周一作为每周第一天,因此第二个参数通常设置为2。
之前提到,每月1日的前一个周一 = 每月1日的日期-每月1日的星期数+1。
对应输入公式为:
=DATE(2021, $C$2, 1)-WEEKDAY(DATE(2021, $C$2, 1), 2)+1▲ 左右滑动查看
根据动图,输入相应公式,进行右拉/下拉填充。
2、设定条件格式
设置相应公式后,我们需要隐藏非当月日期,这时需使用【条件格式】。
❶ 选择B5:H10区域,在【开始】选项卡中,单击【条件格式】-【新建规则】;
❷ 选择【使用公式确定要设置格式的单元格】,并输入以下格式设定公式:
=MONTH(B5)<>$C$2
❸ 单击格式,字体颜色选择白色。
这样,非当月日期的字体将变成白色,看不到,实现了隐藏效果。
动态操作如下:
PS. 此处的条件格式原理是:将显示为TRUE的单元格字体设置为白色。
❹ 最后,只需自定义数字格式,设为仅保留日即可。
① 选择[B5:H10]区域,按下【Ctrl+1】键,打开单元格设置对话框;
② 自定义-类型设置为:d。
至此,单元格日期只显示日期了。
3、扩展延伸
之前我们将日期中的月份与单元格联动,那也可以将年份与单元格联动。
之前第一个单元格的公式为:
=DATE(2021$C$2,1)-WEEKDAY(DATE(2021$C$2,1)2)+1▲ 左右滑动查看
将之前的年份2021改为单元格引用,即可实现以下效果:
=DATE($G$2$C$21)-WEEKDAY(DATE($G$2$C$21)2)+1▲ 左右滑动查看
若想在日历中,高亮显示当天日期,应如何操作呢?
要实现这一效果,只需设置一个条件格式:
❶ 选择[B5:H10]区域,在【开始】选项卡下,单击【条件格式】,新建规则。
❷ 使用公式确定要设置格式的单元格,并输入以下公式:
=AND(YEAR(TODAY())=$G$2,MONTH(TODAY())=$C$2,DAY(B5)=DAY(TODAY()),MONTH(B5)=$C$2)▲ 左右滑动查看
公式判断如下:
▲ 左右滑动查看
PS. 截图当天日期是8月2日,因此对应日期显示为绿色填充。
当然,有时候,我会使用插件-mini calendar。
只需在应用商店添加即可使用。
动态展示如下:
这可以显示对应周的周数。
还可以切换不同的主题颜色。
至此,日历表的制作分享完毕~
4、总结一下
本文介绍了制作日历表所需的函数方法,涉及关键知识点包括:
❶ date函数,weekday函数,条件格式。
❷ 利用数值调节控件实现单元格数值联动。
❸ 制作这种日历,只需确定第一个单元格的日期,即每月1号之前的第一个周一日期。
❹ 将月份和年份联动到单元格中,参数化,是一种常见的编程思维。
本文来自微信公众号:秋叶 Excel (ID:excel100),作者:小爽
广告声明:文内包含对外跳转链接,用于传递信息,节省时间,结果仅供参考。