根据Excel中的date汇总数据

我的问题是以下…

我有一架小飞机,需要跟踪时间。 我必须按部门跟踪时间,而不是一天中的总时间(这就是为什么有时我在同一天有两三个小时)。

现在,这是问题…在列CI上需要SUM过去7天的小时数。 任何给定的7天,不只是上周。 手动操作非常简单…问题在于我需要一个公式,因为我的logging非常大。

这里有一个小例子(假设在15/01/2009之前没有任何小时)…

A柱——- B柱——- C柱

date————– HOURS ——- HOURS LAST 7 DAYS

15/01/2009 ——- ——- 01:00 01:00

15/01/2009 ——- ——- 02:15 03:15

16/01/2009 01:15 ——- ——- 04:30

17/01/2009 ——- ——- 01:30 06:00

18/01/2009 ——- ——- 1点30七时三十

18/01/2009 ——- ——- 01:00 08:30

18/01/2009 02:00 ——- ——- 10:30

19/01/2009 ——- ——- 02:30 13:00

19/01/2009 ——- ——- 03:00 16:00

20/01/2009 ——- //////// ——– 16:00

21/01/2009 ——- ——- 01:00 17:00

22/01/2009 ——- ——- 01:30 15:15

23/01/2009 02:00 ——- ——- 16:00

我一直在努力找出一个公式,但没有运气的最后几周战斗…有什么build议吗?

谢谢

另一种解决scheme基本上与早期提供的解决scheme基本相同:

在C1中,input以下公式:

{=SUM(IF(($A$1:$A1>=($A1-6))*($A$1:$A1<=$A1), $B$1:$B1, 0))} 

然后只是拖下公式。

如果您不熟悉数组公式,则{}外括号只是表示公式是数组公式。 为了正确执行,需要将{}括号内的部分复制到公式栏中,然后按Ctrl + Shift + Enter来指示它是一个数组公式。

首先是获取开始date,这将是以下function:

 =Now() - 7 

如果您将该单元格重命名为“WeekBegin”,则可以使用以下公式计算总小时数:

 =SUMIF(A:A,">=" & WeekBegin,B:B) 

注意我使用了列引用; 这是为了简化公式,而且还允许您轻松地将新数据添加到范围的末尾。 您需要注意,您的WeekBegin单元格不在列A或列B中,否则您将收到循环引用警告。

如果您计划将数值数据放在input范围之上或之下,则需要明确调用总和和标准范围,如下所示:

 =SUMIF(A2:A14,">=" & WeekBegin,B2:B14) 

另外,你可能会发现你的结果最初是以小数forms出现的。 这是Excel的date序列格式,所以你可能需要格式化你的结果。

希望有所帮助!

[编辑:第二遍,如果你正在寻找一个基于从和迄今为止的范围(所以任何7天,你似乎暗示在你的文章),寻找上一个海报的说明,即:

 =SUM(B:B) - SUMIF(A:A, "<="& BeginDate, B:B) - SUMIF(A:A, ">"& EndDate, B:B) 

使用SumIFS()函数在Excel 2007中提供了一个更优雅的解决scheme:

 =SUMIFS(B:B, A:A, ">=" & FromDate,A:A, "<" & ToDate) 

请注意,SUMIFS的参数与标准SUMIF的顺序不同。

快乐总结!]

如果有人想尝试,这里的数据格式更好:

 15-Jan-2009 01:00 15-Jan-2009 02:15 16-Jan-2009 01:15 17-Jan-2009 01:30 18-Jan-2009 01:30 18-Jan-2009 01:10 18-Jan-2009 02:00 19-Jan-2009 02:30 19-Jan-2009 03:00 20-Jan-2009 21-Jan-2009 01:00 22-Jan-2009 01:30 23-Jan-2009 02:00 

我有这个function:

 =SUM($B$1:$B$13)-SUMIF($A$1:$A$13, "<="& (A1- 7), $B$1:$B$13) - SUMIF($A$1:$A$13, ">"& (A1), $B$1:$B$13) 

这是基于迄今有条件的命名范围的总和? 。 这个想法是首先计算总和: SUM($B$1:$B$13)

然后减去7天前发生的任何值: SUMIF($A$1:$A$13, "<="& (A1- 7), $B$1:$B$13)

然后减去将来发生的任何值: SUMIF($A$1:$A$13, ">"& (A1), $B$1:$B$13)

重点是使用SUMIF函数,它“添加由给定条件指定的单元格”。