各位朋友,你们好。今天说说一个的日期计算。有些节日,不是一个固定的日期,比如:
母亲节:每年5月的第二个星期日;
父亲节:每年6月的第三个星期日;
感恩节:每年11月的第四个星期四。
那么,这种节日的日期,该如何计算呢?我们以母亲节为例,给大家说说几个思路。
备注:以下方法不一定是最精简的,提供思路供参考。
方法一
=DATE(2020,5,SMALL(IF(WEEKDAY(DATE(2020,5,ROW($1:$31)),2)=7,ROW($1:$31),31),2))
思路:
1、第一步:【DATE(2020,5,ROW($1:$31))】生成2020年5月1日至5月31日的所有日期;
2、第二步:【WEEKDAY(日期,2)】函数,计算2020年5月1日至5月31日中,每天是星期几;
3、第三步:【IF(星期=7,ROW($1:$31),31)】用IF函数来判断哪些天是星期日,如果是星期日,就返回当天的日期;否则为31;最后得到这样一个数组【{31;31;3;31;31;31;31;31;31;10;31;31;31;31;31;31;17;31;31;31;31;31;31;24;31;31;31;31;31;31;31}】
4、第四步:从第三步的结果数组中,用SMALL函数,提取第二小的日期,得到【10】;
5、第五步:用DATE函数,将年、月、日组合起来,得到所需的日期。
方法二
=DATE(2020,5,1)-WEEKDAY(DATE(2020,5,1),2)+7*2
思路:5月1日 + 5月1日至5月第二个星期日的天数 = 5月第二个星期日的日期
1、第一步:在5月1日的基础上加上14天,得到一个新日期2020-5-15;
2、第二步:用第一步得到的日期减去5月1日的星期(星期五,即5),得到最终的日期。
方法三
=WORKDAY.INTL(DATE(2020,5,0),2,"1111110")
WORKDAY.INTL 函数:返回指定的若干个工作日之前或之后的日期的序列号(使用自定义周末参数)。
WORKDAY.INTL(开始日期,之前/后的工作日天数,自定义周末参数,要排除的日期)
注意:
①Date(2020.5.0)表示4月的最后一天;
②之前的工作日天数用正数,之后的工作日天数用负数;
③自定义周末参数,如"1111110",七位数;1表示工作日,0表示周末,表示周日为工作日;
公式中的意思:2020年4月30日之后2个工作日的日期,然后定义工作日为周日,即可得到2020年5月1日后第二个周日的日期。
这里为什么不以5月1日开始呢?因为存在5月1日为周日的情况,如果5月1日为周日,计算出来的结果就会和实际结果相差一个星期。
今天的内容就分享到这里,你们学会了吗?大家可以尝试下用这三种方法计算下父亲节和感恩节的日期。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请通知我们,一经查实,本站将立刻删除。