我有一个包含开始和结束日期的任务列表,然后尝试在数周内计算每周的活动任务天数。
正如我在屏幕截图中尝试展示的那样,使用=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}))
在第一个建议中,因为您不能轻松地使用MIN
和MAX
在这种类型的公式中,IF
函数可以实现相同的目的。当日期不重叠时,这会导致负数,因此TEXT
使用函数将它们转换为零
在该COUNTIFS
版本中,每周的每个日期都会经过测试,看它是否属于任何日期范围。
我期望两个公式的结果相同
建议使用这两个版本这里