使用Excel数组公式创建日历
如何使用数组公式创建如下所示的日历?
在单元格B1中输入日期时,显示该日期所在月的日历,如下图所示。
先不看答案,自已动手试一试。
公式思路
一周有7天,一个月有28天、29天、30天、31天,每个月的第一天开始的星期几不一样,如果分成含有7列的行的话,最少需要4行,最多需要6行。因此,需要创建6行×7列的数组:
{1,2,3,4,5,6,7;8,9,10,11,12,13,14;15,16,17,18,19,20,21;22,23,24,25,26,27,28;29,30,31,32,33,34,35;36,37,38,39,40,41,42}。
然后,找到想要创建日历的月份的第1天,将代表这天的日期序号与数组相加,得到代表这个月的每天的序号,再减去该月份的第1天是当周的星期几,让日历正好能够与星期几相对应。
公式解析
获取当月日历的数组公式:
=IF(DAY(calendar)>15,IF(ROW()=6,””,calendar),IF(DAY(calendar)<15,if(row()>9,””,calendar),calendar))
其中,calendar是一个命名公式,即:
=week*7+weekday+B3-B2
其中,week和weekday都是命名数组,即:
week:={0;1;2;3;4;5}
weekday:={1,2,3,4,5,6,7}
定义的名称如。
week*7+weekday得到数组:
{1,2,3,4,5,6,7;8,9,10,11,12,13,14;15,16,17,18,19,20,21;22,23,24,25,26,27,28;29,30,31,32,33,34,35;36,37,38,39,40,41,42}。
在上所示的工作表中,在单元格B1中放置了想要创建的日历月所在的日期。单元格B3中放置日期所在月份的第1天,B2放置这一天是这一周的第几天。公式:week*7+weekday+B3-B2得到从该月份第一天所在周的周一开始之后的42天的日期序列。
最后的数组公式中,=IF(DAY(calendar)>15,IF(ROW()=6,””,calendar)表示如果上个月的日期大于15且在开始行,那么就显示为空,即不显示上月的日期;同样,IF(DAY(calendar)<15,if(row()>9,””,calendar移除了下月的日期。
小结
创建日历看似复杂,但理解其背后蕴藏的道理后似乎很简单。
命名数组的应用技巧,值得借鉴。
最新推荐
-
手机剪映怎么删除多余视频片段 剪映怎么删掉部分视频
手机剪映怎么删除多余视频片段?手机剪映是一款强大的视频剪辑工具,它可以对用户们所拍摄的视频进行编辑,比如常 […]
-
win10如何把电脑改为无密码 win10取消开机账户登录的步骤
win10如何把电脑改为无密码?在win10系统中,开机密码可以帮助用户保护自己电脑的安全性。但是时间长了 […]
-
win10访问共享文件要求输入网络凭据 访问共享电脑需要输入网络凭据怎么办
win10访问共享文件要求输入网络凭据怎么办?网络凭据是系统为共享文件设置的一个功能,通过输入凭据,让访问 […]
-
手机剪映如何只导出音频mp3 剪映导出音频mp3
手机剪映如何只导出音频mp3?剪映是一款功能强大的视频编辑软件,通过软件附带的功能,用户可以只需要导出视频 […]
-
edge怎么导入其他浏览器数据 edge浏览器导入chrome浏览器数据
edge怎么导入其他浏览器数据?Edge浏览器是一款电脑自带的浏览器工具,丰富的搜索功能,帮助用户们更好的 […]
-
华硕笔记本的移动热点怎么开启 win10笔记本开热点
华硕笔记本的移动热点怎么开启?通过将电脑设置为移动热点,其他设备可以通过连接到您的电脑热点来共享网络连接。 […]
热门文章
手机剪映怎么删除多余视频片段 剪映怎么删掉部分视频
2win10如何把电脑改为无密码 win10取消开机账户登录的步骤
3win10访问共享文件要求输入网络凭据 访问共享电脑需要输入网络凭据怎么办
4手机剪映如何只导出音频mp3 剪映导出音频mp3
5edge怎么导入其他浏览器数据 edge浏览器导入chrome浏览器数据
6华硕笔记本的移动热点怎么开启 win10笔记本开热点
7wps全部删除页眉页脚怎么删除
8win11默认浏览器怎么更换 win11更换默认浏览器
9剪映自动续费怎么关 剪映app怎么取消自动续费支付宝
10google浏览器怎么添加信任站点 谷歌浏览器给网址添加信任
随机推荐
专题工具排名 更多+