![Excel:每月第三个星期三](https://linux22.com/image/1372569/Excel%EF%BC%9A%E6%AF%8F%E6%9C%88%E7%AC%AC%E4%B8%89%E4%B8%AA%E6%98%9F%E6%9C%9F%E4%B8%89.png)
我需要获取某个日期之后的下一个 IMM 日期。
IMM 日期定义为每年三月/六月/九月/十二月的第三个星期三。
答案1
如果您在 A2 中有一个日期,并且想要获取下一个 IMM 日期(根据您的 IMM 日期定义,即三月、六月、九月和十二月的第三个星期三),则使用此公式
=LOOKUP(A2,DATE(YEAR(A2),{0,3,6,9,12;3,6,9,12,15},22)-WEEKDAY(DATE(YEAR(A2),{0,3,6,9,12;3,6,9,12,15},4)))
以所需日期格式格式化结果单元格。如果 A2 是 IMM 日期,则公式会给出下一个日期,应该这样工作吗?
解释:
您可以使用此公式来获取一个月内的第一个星期三
=DATE(y,m,8)-WEEKDAY(DATE(y,m,4))
对于您选择的任何年份 = y 和月份 = m
4 可以变化以表示一周中的不同日子,8 可以更改为 22 以获得该月的第三个星期三。在上面的公式中,这个概念被扩展为在公式中生成一个日期“表”,其中顶部“行”由去年 12 月的第三个星期三组成,然后是当年的 3 月、6 月、9 月和 12 月 - 第 2 行包含当年的 4 个日期,然后是明年 3 月的日期。然后,LOOKUP 在该表中查找 A2,与最后的顶行第三个星期三,并返回下一个倒数第三个星期三。
有一种更短的方法,它不使用 WEEKDAY 函数而是使用 FLOOR......但我通常会避免使用该方法,因为它依赖于使用一个特定的日期系统(1900 或 1904),而我上面提供的版本适用于您使用的任何一个日期系统。
此版本仅适用于[默认] 1900 日期系统
=LOOKUP(A2,FLOOR(DATE(YEAR(A2),{0,3,6,9,12;3,6,9,12,15},17),7)+4)
答案2
你可以用简单的方法找到今年第一个月的第三个星期三。
其中 A1 是一年的第一天或DATE(YEAR(TODAY()),1,1)
:
=A1+(25-WEEKDAY(A1))