我的问题如下......
我有一架小飞机,我需要跟踪时间。我必须按部门跟踪小时数而不是当天的总时数(这就是为什么有时我在同一天有2或3)。
现在这就是问题......在C栏我需要记录过去7天的小时数。任何给定的7天,而不仅仅是上周。手动完成很容易......问题是我需要一个公式,因为我的记录很大......
这里有一个小例子(假设在2009年1月15日之前没有小时)......
栏目A -------栏目B -------栏目C
日期--------------小时-------最后7天
15/01/2009 01:00 ------- ------- 01:00
15/01/2009 02:15 ------- ------- 3点15分
16/01/2009 ------- ------- 1点15分04:30
17/01/2009 01:30 ------- ------- 06:00
18/01/2009 01:30 ------- ------- 07: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
过去几周我一直在努力寻找一个公式,但没有运气......有什么建议吗?
由于
答案 0 :(得分:1)
首先要获得开始日期,这将是以下函数:
=Now() - 7
如果您将该单元格重命名为“WeekBegin”,则可以使用以下公式计算总小时数:
=SUMIF(A:A,">=" & WeekBegin,B:B)
请注意我使用了列引用;这既简化了公式,又允许您轻松地将新数据添加到范围的末尾。您需要注意在A列或B列中您的WeekBegin单元格不,否则您将收到循环引用警告。
如果您计划将数字数据置于输入范围之上或之下,则需要明确调出总和和条件范围,如下所示:
=SUMIF(A2:A14,">=" & WeekBegin,B2:B14)
此外,您可能会发现您的结果最初以小数形式出现。这是Excel的日期序列格式,因此您可能需要将结果格式化为时间。
希望有所帮助!
[编辑:在第二次通过时,如果您想要根据来自和迄今为止的范围求和(所以任何7天似乎暗示您的帖子),请查找上一张海报的注释,即:
=SUM(B:B) - SUMIF(A:A, "<="& BeginDate, B:B) - SUMIF(A:A, ">"& EndDate, B:B)
使用SumIFS()函数在Excel 2007中提供了更优雅的解决方案:
=SUMIFS(B:B, A:A, ">=" & FromDate,A:A, "<" & ToDate)
请注意,SUMIFS的参数与标准SUMIF的顺序不同。
快乐总结!]
答案 1 :(得分:1)
另一种解决方案与早期提供的解决方案基本相同:
在C1中,输入以下公式:
{=SUM(IF(($A$1:$A1>=($A1-6))*($A$1:$A1<=$A1), $B$1:$B1, 0))}
然后将公式拖下来。
如果您不熟悉数组公式,{}外括号只表示公式是数组公式。要使其正确执行,您需要将{}括号内的部分复制到公式栏中,然后按Ctrl + Shift + Enter表示它是一个数组公式。
答案 2 :(得分:0)
如果有人想尝试,以下是更好格式的数据:
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
我得到了这个功能:
=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 of named ranges conditional to date?。
我们的想法是首先计算总和: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函数,它“添加由给定条件指定的单元格。”