Excel:如何根据计算而不是范围对值进行求和?

时间:2016-08-12 08:53:18

标签: excel date excel-formula sum sumifs

我很难找到一种方法来创建一个公式,该公式可以根据计算值而不是范围对数据求和。

以下是我想要实现的简单内容:

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      

如果输入是9月,我需要一个可以计算25天的公式。如果我使用十月作为输入,它应该在10月期间内的所有日期总和。

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

=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))}

上面没有用,我一直在玩不同的选项,但是无法破解代码 - 但是:)

期待一些投入。

修改

Helper列不是首选,因为它会使我的工作表极其复杂。

/托马斯

1 个答案:

答案 0 :(得分:0)

{=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))

))}

以上情况应该有效,应该注意负数。从本质上讲,它确保两个日期都在指定月份的开始和结束时限制(由$ B $ 9单元格指定)。当实际指定天数作为月份的开始或结束时,我不得不在月末添加额外的一天,以避免计算当月内实际上没有包含的日期。

我没有对它进行过广泛的测试,但可以随意使用它并反馈给我。为了更好的能见度,我将公式分成了几行,但它是一个小怪物:)