计算日期数组中重叠的天数到固定日期范围

计算日期数组中重叠的天数到固定日期范围

我有一个包含开始和结束日期的任务列表,然后尝试在数周内计算每周的活动任务天数。

问题的 excel 屏幕截图

正如我在屏幕截图中尝试展示的那样,使用=MAX(MIN(end1,end2)-MAX(start1,start2)+1,0)我可以得到一组日期与另一组日期的重叠部分,然后对整个星期进行总结以获得每周的答案。

尽管这个解决方案最终将需要一个相当大的计算矩阵才能实现,但我相信一定有一条更直接的路线。

我在考虑数组公式?但很挣扎。

答案1

您可以使用此数组公式G15

=SUM(TEXT(IF(C$3:C$6>F15+6,F15+6,C$3:C$6)-IF(B$3:B$6<F15,F15,B$3:B$6)+1,"0;\0")+0)

使用CTRL++确认并复制下来SHIFTENTER

COUNTIFS....或者像这样的非数组版本

=SUM(COUNTIFS(B:B,"<="&F15+{0,1,2,3,4,5,6},C:C,">="&F15+{0,1,2,3,4,5,6}))

在第一个建议中,因为您不能轻松地使用MINMAX在这种类型的公式中,IF函数可以实现相同的目的。当日期不重叠时,这会导致负数,因此TEXT使用函数将它们转换为零

在该COUNTIFS版本中,每周的每个日期都会经过测试,看它是否属于任何日期范围。

我期望两个公式的结果相同

建议使用这两个版本这里

在此处输入图片描述

相关内容