本文作者:office教程网

使用Excel数组公式创建日历

office教程网 2024-04-06 10:27:52
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

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

在单元格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是一个命名公式,即:

统计Excel单元格区域中无效数据数量

如下图所示的工作表,使用公式来统计单元格区域C2:C6中没有出现在单元格区域A2:A9中的数据的数量。 也就是说,单元格区域C2:C6中凡是没有出现在单元格区域A2:A9中的数据,都是无效数据。从工作表中可以明显看出,单元格区域C2:C6中的“SX006”没有出现在单元格区域A2:A9中,因此“SX006”为无效

=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移除了下月的日期。

小结

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

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

获取Excel单元格中字符串的最后一个单词

使用公式来获取字符串的最后一个单词。如下图所示,提取列A单元格中字符串的最后一个单词,将其放置到列C相应的单元格中。 先不看下面的内容,自已试一试。 公式思路 首先查找字符串中空格最后一次出现的位置,然后从该位置起提取字符串结尾部分的单词。 公式解析 在单元格C1中输入数组公式: =RIGHT(A1,M

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:使用Excel数组公式创建日历发布于2024-04-06 10:27:52
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: