当前位置: 主页 > Office办公 > Excel专区 > Excel函数 > excel中使用内置函数和自定义函数来获取母亲节的具体日期的方法

excel中使用内置函数和自定义函数来获取母亲节的具体日期的方法

  • 2022-02-25
  • 来源/作者: 菜鸟图库/ 菜鸟图库
  • 319 次浏览

母亲节的具体日期是哪天呢?中国母亲节日期是每年5月份的第2个星期日是母亲节。

  2012年母亲节是哪天呢?根据5月份的第2个星期日推算出来,2012年母亲节的具体日期是:2012年5月13日。

  尽管用系统自带工具日历一类的,很容易就能查看到2012母亲节是那一天。但对我们excel发烧友来说,使用excel的日期函数也是很容易获取到2012年母亲节日期的。

  以在excel中计算2012母亲节为例,来说明这类有年、月、周、天组合的特殊日期的计算方法。明白了方法,类似母亲节、父亲节这一类特殊日期就只是修改一下数据源的问题。

  使用内置函数获取2012母亲节具体日期的方法:B1:B4单元格分别是对应的2012年5月第2周的第1天,即为母亲节的具体日期。

  我们在B5单元格输入公式:=DATE(B1,B2,1)+B4-WEEKDAY(DATE(B1,B2,1))+(B3-(B4>=WEEKDAY(DATE(B1,B2,1))))*7

excel中使用内置函数和自定义函数来获取母亲节的具体日期的方法

  除了上面使用excel内置函数完成以外,还可以自己编写一个自定义函数来实现:按ALT+F11,打开VBE编辑器,插入——模块,复制下面的代码,返回工作表B5单元格输入:=日期(B1,B2,B3,B4),就可以得到2012年母亲节的具体日期是:2012-5-13。

  这个自定义函数表示在每年的第几个星期的周几。

excel中使用内置函数和自定义函数来获取母亲节的具体日期的方法

Function 日期(Optional ByVal Yea As Integer = 0, Optional ByVal Mon As Integer = 0, _
    Optional ByVal Num As Integer = 0, Optional ByVal Wee As Integer = 0) As Date
    '定义四个参数:Yea为年,Mon为月,Num为周次,Wee为周几。
    '参数省略时默认为0
    If Yea = 0 Then Yea = Year(Now()) '如果参数为0,就默认为当年
    If Mon = 0 Then Mon = Month(Now()) '如果参数为0,就默认为当月
    If Num = 0 Then Num = 1 '如果参数为0,就默认为第一周
    If Wee = 0 Then Wee = 7 '如果参数为0,就默认为周日
    日期 = Num * 7 - 7 + Wee Mod 7 + 1 - Int((Wee Mod 7 + 1 - DateSerial(Yea, Mon, 1)) / 7) * 7
End Function