发布信息

使用Excel数组公式创建日历

作者:admin      2024-12-31 16:00:00     0



如何使用数组公式创建如下所示的日历?

在单元格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移除了下月的日期。

小结

创建日历看似复杂,但理解其背后蕴藏的道理后似乎很简单。

命名数组的应用技巧,值得借鉴。











图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部