高血压专题网,内容丰富有趣,生活中的好帮手!
高血压专题网 > 知识分享 I 计算指定日期所在月份有几个星期日

知识分享 I 计算指定日期所在月份有几个星期日

时间:2023-07-12 12:13:28

相关推荐

知识分享 I 计算指定日期所在月份有几个星期日

知识分享 I 计算指定日期所在月份有几个星期日

如图所示,需要计算A列日期所在月份有几个星期日。

日期所在月份有几个星期日

在B2单元格中输入以下数组公式,按组合键,向下复制到B7单元格。

{=COUNT(0/(WEEKDAY(TEXT(A2,"e-m")&-ROW($1:$31),2)=7))}

首先,用TEXT函数返回A2单元格的日期“年-月”,用文本连接符与“ROW($1:$31)”连接,得到一组日期样式的字符串。

{"-6-1";"-6-2";"-6-3";……;"-6-30";"-6-31"}

然后,用WEEKDAY函数依次判断这些字符串是星期几,对于实际不存在的日期,如-6-31,将返回错误值#VALUE!,得到内存数组结果为:

{3;4;5;6;7;1;2;3;4;5;6;7;1;2;3;4;5;6;7;1;2;3;4;5;6;7;1;2;3;4;#VALUE!}

再用等式判断以上结果是否等于7,得到由逻辑值TRUE、FALSE及错误值构成的新内存数组。

{FALSE;FALSE;FALSE;FALSE;TRUE;……;#VALUE!}

接下来用0除以以上内存数组,0除以TRUE结果为0,0除以FALSE和错误值,结果为错误值#DIV/0!和#VALUE!。

{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;……;#VALUE!}

最后,用COUNT函数统计其中的数值个数,得到的结果就是每个月的星期日天数。也可以使用以下数组公式完成同样的计算。

{=COUNT(0/(MOD(TEXT(A2,"e-m")&-ROW($1:$31),7)=1))}

先用TEXT函数构成1~31日的日期样式的字符串。

再用MOD函数计算日期字符串与7相除的余数,如果日期为星期日,MOD函数结果为1。

对于不存在的日期返回错误值#VALUE!。接下来用等式判断MOD函数的结果是否等于1,返回由逻辑值和错误值#VALUE!构成的内存数组。

0除以内存数组结果,最后使用COUNT函数计算相除后的数值个数。

以上图文源自

北京大学出版社出版

《Excel 函数与公式应用大全》

知识点全覆盖解决实际问题专业级深度剖析Excel

注意,美好的事情正在发生!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。