今天给大家分享的表格小技巧是制作日历🗓。恰好前段时间会员群里有朋友在讨论。
打个响指,先看下制作完成后的日历:
看起来好像需要化妆很久后才漂亮样子,但其实制作过程很简单,牵牵手,跟我走。
步骤1
搭个架子先
左边画条龙右边画彩虹,在B4:H10区域比划一个7X7的框架,将单元格边框线设置为灰色。在B4:H4区域按照从周一到周末的顺序输入星期标题。在D2和F2单元格分别输入年和月。
步骤2
创建下拉列表
选中E2单元格制作数据有效性下拉列表。打开数据验证对话框后,验证条件设置为序列,取消勾选忽略空值,来源设置为以下字符串(它表示1~12个月份,注意彼此之间的分隔符是半角逗号)。
1,2,3,4,5,6,7,8,9,10,11,12
使用同样的方式在C2单元格设置关于年份的下拉列表:
步骤3
那些相关的日子
在公式选项卡下打开定义名称对话框,创建一个名为月初的名称,引用位置为:
=DATE($C$2,$E$2,1)
DATE函数是一个基础的日期函数,3个参数分别表示年、月、日。比如DATE(2022,12,1),返回日期2022年12月1日。该公式返回C2单元格指定年、E2单元格指定月的1号,也就是月初第1天。
再创建一个名为月末的名字,引用位置为:
=EOMONTH(月初,0)
EOMONTH函数可以返回第1参数日期在第2参数指定月数的最后一天的日期。比如EOMONTH(“2022-12-1”,0),返回2022年12月1日所在月的最后一天的日期,也就是2022年12月31日。
在B5单元格输入以下公式,并复制填充到B5:H10区域。
=月初-WEEKDAY(月初,2)+1
+ROW(A1)*7-8+COLUMN(A1)
第1部分是月初-WEEKDAY(月初,2)+1,用月初减掉月初所在的星期几,然后再加上1。它的目的是在B5单元格返回相关年月之前的第1个星期1所在的日期。比如2022年12月1日是星期4,减掉4,再加1,返回2022年11月28日。
第2部分是ROW(A1)*7-8+COLUMN(A1)。它返回的是一个从0开始,按照从左向右、从上向下的方向,依次递增的矩阵序列▼
用第1部分加上第2部分即可返回一个从指定日期开始的矩阵日期序列▼
选中B5:H10区域,将单元格格式设置为自定义d,只显示日期的天数部分。
步骤4
那些灰色的日子
以上步骤完成后,已经可以根据用户选择的年、月参数联动显示相关日期了。剩下的只是根据个人的需要做一点微不足道的美化工作。比如说,将不是当月的日期显示成灰色字体,将节假日背景色填充为粉色等——这需要使用到Excel的条件格式功能。
以将不是当月的日期显示成灰色字体为例,选中B5:H10单元格区域,依次打开条件格式→新建规则→使用公式确定要设置格式的单元格,在编辑框中输入以下公式:
=OR(B5>月末,B5<月初)
单击格式命令,在打开的设置单元格格式对话框中,将字体设置为灰色,最后确定后依次关闭对话框。