Excel:如何基于计算而不是范围求和值?

我很难find一种方法来创build一个公式,可以根据计算的值而不是范围来对数据进行求和。

下面是一个简单的什么即时通讯试图实现:

Task_Name User Start_Date End_Date Task_A Peter 01/09/2016 28/10/2016 Task_B Peter 01/09/2016 05/09/2016 Total days for September Peter 25 

如果投入是九月,我需要一个计算25天的公式。 如果我使用十月作为input,它应该在十月份的时间段内总结所有date。

我使用下面的公式来获得工作日公关。 任务:

 =MAX(NETWORKDAYS(MAX($C2,DATE(YEAR($B$9),MONTH($B$9),1)),MIN($D2,DATE(YEAR($B$9),MONTH($B$9),DAY(EOMONTH($B$9,0))))),0) 

哪里:

 $B$9 = 01/09/2016 

该公式可以为第一项任务正确计算22天。

我正在考虑做类似的事情:

 {=SUM(MAX(NETWORKDAYS(MAX($C2:$C3,DATE(YEAR($B$9),MONTH($B$9),1)),MIN($D2:$D3,DATE(YEAR($B$9),MONTH($B$9),DAY(EOMONTH($B$9,0))))),0))} 

以上是不工作,我一直在玩不同的select,但不能破解代码 – 但:)

期待一些投入。

编辑:

帮手列不是首选,因为它会使我的工作表非常复杂。

/托马斯

 {=SUMPRODUCT(NETWORKDAYS( IF(DATE(YEAR($B$9),MONTH($B$9),1)<$C2:$C3+0,IF($C2:$C3+0<DATE(YEAR($B$9),MONTH($B$9),DAY(EOMONTH($B$9,0))),$C2:$C3+0,DATE(YEAR($B$9),MONTH($B$9),DAY(EOMONTH($B$9,0))+1)),DATE(YEAR($B$9),MONTH($B$9),1)), IF(DATE(YEAR($B$9),MONTH($B$9),1)<$D2:$D3+0,IF($D2:$D3+0<DATE(YEAR($B$9),MONTH($B$9),DAY(EOMONTH($B$9,0))),$D2:$D3+0,DATE(YEAR($B$9),MONTH($B$9),DAY(EOMONTH($B$9,0))+1)),DATE(YEAR($B$9),MONTH($B$9),1)) ))} 

上面应该工作,它应该照顾负数。 从本质上讲,它确保两个date在指定月份的开始和结束时(由$ B $ 9单元格指定)限制。 当实际指定date作为月份的开始或结束时,我不得不在每个月的末尾添加一个额外的date,以避免当月份中实际上不包括date的情况下的计数。

我还没有广泛的testing,但随意玩,并反馈给我。 为了更好的知名度,我分割了公式,但它是一个小怪物:)