如何在 Excel 中计算两个日期之间的星期五的数量?(但前提是跨越星期五午夜!)

如何在 Excel 中计算两个日期之间的星期五的数量?(但前提是跨越星期五午夜!)

我见过许多 Excel 公式可以计算两个日期之间星期五的数目。但是,它们对我来说并不是 100% 有效,因为我只想计算午夜之后星期五的数目。

我说的‘午夜’是指一天的最后一分钟/秒,也就是 23:59:59。

例如:

开始:2019 年 6 月 21 日星期五,晚上 7 点

结尾:6 月 24 日星期一,凌晨 3 点

这将跨越“1”个星期五的午夜

但是,下面这个例子不会跨越任何时间,因为它没有超过星期五 23:59:59;

开始:6 月 17 日星期一,凌晨 3 点

结尾:2019 年 6 月 21 日星期五,晚上 7 点

答案1

我认为一个可靠且易于理解的方法是只计算完整的星期五。日期范围内的任何星期五后面跟着另一天都必须跨越午夜。星期五不能跨越午夜的唯一情况是结束日期是星期五(如果仍然是星期五,则尚未超过午夜)。

在此处输入图片描述

因此,如果开始日期在 A2 中,结束日期在 B2 中,我的解决方案是:

=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(INT(A2)&":"&INT(B2))))=6))-(WEEKDAY(B2)=6)

这将使用 INDIRECT(这需要整数日期)创建一个虚拟行范围,其行号是日期编号。SUMPRODUCT 计算星期五的数量。

如果结束日期是星期五,则包括结束日期。测试结束日期是否为星期五,1如果为真则返回,0否则返回。该结果将从计数中减去。

答案2

请尝试以下方法,它将计算开始日期和结束日期之间过了午夜的星期五和星期六。

在此处输入图片描述

公式D2

=IF(INT((WEEKDAY(A2-6)-A2+B2)/7)>0,INT((WEEKDAY(A2-7)-A2+B2)/7),0)

拖累

相关内容