我可以使用什么 Excel 公式来计算给定月份的第二个星期一?

我可以使用什么 Excel 公式来计算给定月份的第二个星期一?

我可以使用什么 Excel 公式来计算给定月份的第二个星期一?

您可以假设我有一个包含该月第一天的单元格可供使用。

为了其他用户的利益,您能否解释一下如何改变公式以获取每月的第一、第三或第四个星期一,以及一周中的其他日子。例如星期一的第三个星期五...

答案1

这是我通过快速搜索发现的东西:

一般来说,你可以用这个公式得到当月的第 n 天

=DATE(B2,A2,1+7*n)-WEEKDAY(DATE(B2,A2,8-xday)) 

其中年份在 B2 中,月份(以 1 到 12 的数字表示)在 A2 中,xday 是一个表示星期几的数字(1 = 星期日至 7 = 星期六),因此对于第一个星期六,其变为

=DATE(B2,A2,1+7*1)-WEEKDAY(DATE(B2,A2,8-7)) 

或第四个星期四

=DATE(B2,A2,1+7*4)-WEEKDAY(DATE(B2,A2,8-5)) 

所以,如果我没看错的话,每月的第二个星期一

=DATE(B2,A2,1+7*2)-WEEKDAY(DATE(B2,A2,8-2)) 

功劳应得者

答案2

=IF((工作日(A1) > 3),(A1+(17-工作日(A1))),(A1+(10-工作日(A1))))

A1 是每月的第一天

答案3

我也没办法让它正常工作。我想出了一个超级复杂(我的习惯用法)的方法,看起来确实有效。

A2 = 月
B2 = 年
C2 = 星期几 (1 - 7, 1 = 星期日)
D2 = “数字”(3 = 第 3 个星期几等)

因此第二个星期一将是 A2 = 当前月份,B2 = 当前年份,C2 = 2(星期一)和 D2 = 2(第二个星期一)

F2 = =IF(MONTH(IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))=$C2,(VALUE(($A2&"/01/"&$B2)))+(($D2*7)-7),IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))<$C2,((VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+(($D2*7)-7)),(VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+7+(($D2*7)-7))))=A2,IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))=$C2,(VALUE(($A2&"/01/"&$B2)))+(($D2*7)-7),IF((WEEKDAY(VALUE(($A2&"/01/"&$B2))))<$C2,((VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+(($D2*7)-7)),(VALUE(($A2&"/01/"&$B2)))+($C2-(WEEKDAY(VALUE(($A2&"/01/"&$B2)))))+7+(($D2*7)-7))),"error")

我确信有一种更简洁的方法可以做到这一点(我已经注意到,如果我翻转其中一个 IF,我可以消除一些重复),而且大多数重复的公式可以拉到单独的单元格中,使最终公式更简洁。但我还没有机会研究可能还有哪些其他公式可用,所以我暂时保持原样。我还制作了一个更丑陋的版本,带有错误检查和稍微漂亮一点的结果。但它太复杂了,无法在这里发布。

相关内容