专栏中的Excel 2007 Sumproduct foreach日期?

时间:2015-07-29 17:40:27

标签: excel-formula

我目前有一个电子表格,在行数统计时将没有设置大小。我有一段时间用于填写条目的时间段。

例如:

Transition Time     State     Reason Code   Duration
06/01/2015 06:43 AM Logged-in   0           0:00:00
06/01/2015 06:43 AM Not Ready   32760       0:00:43
06/01/2015 06:44 AM Logout      5           0:00:00
06/01/2015 06:46 AM Logged-in   0           0:00:00
06/01/2015 06:46 AM Not Ready   32760       0:01:47
06/01/2015 06:47 AM Ready       0           0:00:00
06/01/2015 06:47 AM Reserved    0           0:00:06
06/01/2015 06:48 AM Talking     0           0:06:59
06/01/2015 06:55 AM Not Ready   6           0:02:58
06/01/2015 06:58 AM Ready       0           0:00:00
06/01/2015 06:58 AM Reserved    0           0:00:01
06/01/2015 06:58 AM Talking     0           0:09:18
06/01/2015 07:07 AM Work        0           0:00:05

现在,这将继续贯穿整个报告。通常它是一个月,但可以更长。我能够根据其他列获取月份的值。

例如:

=SUMPRODUCT(--(C:C=6),--(B:B="Not Ready"),(D:D))

这将给我整个报告的价值。我需要在这里一次计算1天。

伪:

DateTime selectedDay = current row
DateTime currentDay = current day from row;

foreach(DateTime day in Transition Time)
{
    if(selectedDay <= currentDay)
    {
        //SUM to CELL - Array prefered
    }
    else if(selectedDay > currentDay)
    {
       currentDay = selectedDay
    }
}

1 个答案:

答案 0 :(得分:0)

请考虑以下公式,以计算单位H2中按日期设置的特定日期的原因代码为6的总用户“未就绪”的总持续时间(以秒为单位):

{=(SUM(IF(((B:B="Not Ready")*(IFERROR(INT(A:A),0)=H2)*(C:C=6))=1,TIMEVALUE(D:D),0)))*86400}

请注意,使用CTRL + SHIFT + ENTER输入公式作为数组公式时,不会手动输入大括号。

我已经利用能够在整个数组中计算AND正在计算的布尔值(真或假,1或0)。这给了我一个满足所有条件的行。使用IF(array=1,"Duration range")我能够提取所有相关值并在整个最终数组中使用SUM并乘以86400(一天中的秒数)以得出最终计算结果。的问候,