计算范围内的特定天数

我如何计算某个范围内一周中某天的(小数)计数? 例如,如果范围是从6月3日星期一中午12点到6月4日星期二中午12点,我想要计算星期一的数量,则公式将返回结果0.5。

我已经find了一个整数天数的公式:

=SUM(INT((WEEKDAY($B2-x)+$D2-$B2)/7))

其中x是感兴趣的星期几(1到7)。 当然,需要修改才能返回上述结果。 我会怎么做?

你可以用这个版本得到星期一的总数(包括开始和结束date)(你不需要SUM)

=INT((WEEKDAY($B2-2)+INT($D2)-INT($B2))/7)

…然后做一个调整,以考虑开始/结束date,例如

=INT((WEEKDAY($B2-2)+INT($D2)-INT($B2))/7)-IF(WEEKDAY($D2)=2,1-MOD($D2,1))-IF(WEEKDAY($B2)=2,MOD($B2,1))

我真的不推荐它(这是更多的资源饥渴),但这个版本应该给你相同的结果

=SUMPRODUCT((TEXT(B2+(ROW(INDIRECT("1:"&ROUND((D2-B2)*1440,0)))-0.5)/1440,"ddd")="mon")+0)/1440

它testingdate范围内的每一分钟,以确定它是否落在星期一(假设你不下降到秒)