我很难找到一种方法来创建一个公式,该公式可以根据计算值而不是范围对数据求和。
以下是我想要实现的简单内容:
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列不是首选,因为它会使我的工作表极其复杂。
/托马斯
答案 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单元格指定)。当实际指定天数作为月份的开始或结束时,我不得不在月末添加额外的一天,以避免计算当月内实际上没有包含的日期。
我没有对它进行过广泛的测试,但可以随意使用它并反馈给我。为了更好的能见度,我将公式分成了几行,但它是一个小怪物:)