大家好,今天是母亲节,先祝符合条件的朋友们节日快乐~~

我们今天来研究一下母亲节日期的计算方法,先来看母亲节的定义:

母亲节:5月的第2个星期日

那么用Excel怎么去计算出来具体哪一个日期是母亲节呢?(在C2单元格可修改年份数)

研究一个问题写公式时,我们如果有经验,或者很快有思路的时候,可以直接开始尝试写公式。但是当我们没有思路的时候,可以怎么办呢?

先用最笨的办法,把所有可能的情况列举一下

例如,可以列举5月1日-5月14日(为什么是14天?)可能的星期分布情况,如下所示

在上图中,我也把所有的星期日,都填充标示出来了,可以看到无论是什么年份,母亲节日期的范围一定会落在5月8日-5月14日的某一天里!

那怎么才能根据年份的不同,去计算出来具体的日期呢?

年份不同,其实主要就是会影响到星期几的变化!

所以5月1日是星期几很重要,全部列出来,应该是这样的:

  1. 如果5月1日是星期 1,则母亲节是5月14日(与5月1日隔了13天)
  2. 如果5月1日是星期 2,则母亲节是5月13日(与5月1日隔了12天)
  3. 如果5月1日是星期 3,则母亲节是5月12日(与5月1日隔了11天)
  4. 如果5月1日是星期 4,则母亲节是5月11日(与5月1日隔了10天)
  5. 如果5月1日是星期 5,则母亲节是5月10日(与5月1日隔了 9天)
  6. 如果5月1日是星期 6,则母亲节是5月 9日 (与5月1日隔了 8天)
  7. 如果5月1日是星期 7,则母亲节是5月 8日 (与5月1日隔了 7天)

把所有的情况都列出来之后,所以最笨的公式就出炉了:

  1. 先用公式算出来当年的5月1日是星期几(C2单元格是年份数),然后把值放在F2单元格,所以F2的公式就是

=WEEKDAY(DATE(C2,5,1),2)

  1. 然后再到D5单元格中对F1的值进行判断即可得到母亲节的具体日期

=IF(F2=1,DATE(C2,5,14),

IF(F2=2,DATE(C2,5,13),

IF(F2=3,DATE(C2,5,12),

IF(F2=4,DATE(C2,5,11),

IF(F2=5,DATE(C2,5,10),

IF(F2=6,DATE(C2,5,9),

IF(F2=7,DATE(C2,5,8))))))))

虽然办法有点笨,但这样是每个人都能想到的解决方法!

若你懂的函数比较多,你可以用choose来选择具体的日期,因为年月都可以不变,然后具体的天是就在8-14号去选择(根据F2算出五月一日的星期数)

=DATE(C2,5,CHOOSE(F2,14,13,12,11,10,9,8))

那我们再想想办法,看看还有没有其他办法!

既然母亲节是在5月8日-14日之间产生,即母亲节日期起码要在5月1日的基础上加上7,这样才得到5月8日;再分析一下其他间隔天数的规律,加完7后,还需要再加上:周总天数 7 - 五月一日的星期数,即可得到公式:

=DATE(C2,5,1)+7+(7-F2)

优化1:

=DATE(C2,5,1)+14-F2

优化2:

=DATE(C2,5,15)-F2)

当然你不需要辅助单元格F2的时候,可以直接写:

=DATE(C2,5,15)-WEEKDAY(DATE(C2,5,1),2))

意思就是只要用5月的第15天减去五月一日的星期数就ok了(直接理解的话,有点不太好理解了~)

再推出一个终极的,最深奥的算法,但写起来超简单~

=FLOOR(DATE(C2,5,6),7)+8

用FLOOR函数找到5月的第一个星期六,然后加上8就是第二个星期天了。(就是FLOOR函数的理解要费点劲~)

以上介绍了三种算法,都可以选用,无论你是用哪一种算法,都能做好一个母亲节具体日期查询了:

好,母亲节的日期推算就做完了,大家可以试试父亲节的日期怎么计算,评论告诉我~

最后,总结一下本文的思路,希望能对大家处理实际问题时有帮助~

  1. 没有思路时,不妨从最笨的办法开始(起码不要停滞不前)
  2. 知识积累得越多,能想到的方法就越多(注重知识的积累)

还有当然我们要善用搜索,因为你目前面临的问题,也许已有前人遇到过,并且有解决方案,你找到了就直接套用即可!

当然建议你还是要学会理解别人的方法,只有经过深度思考、理解的内容,才能真正被你吸收,才能更好地举一反三

加入黄成明老师的《数说》栏目,为自己积累更多实用的数据分析知识,让自己提升思维,提升技能!目前已有3100+会员在学习,赶紧加入学习吧~

戳开数据分析,精英人士必学的能力线上课程《数说》的介绍~

相关文章