【问题标题】:SUM data according to dates in Excel根据 Excel 中的日期对数据求和
【发布时间】:2009-05-04 08:41:32
【问题描述】:

我的问题如下...

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

现在这就是问题所在...在 C 列上,我需要对过去 7 天的小时数求和。任何给定的 7 天,而不仅仅是上周。手动操作很容易...问题是我需要一个公式,因为我的记录很大...

这里有一个小例子(假设在 15/01/2009 之前没有 HOURS)...

A栏-------B栏-------C栏

日期-------------小时数-------过去 7 天的小时数

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-------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

过去几周我一直在努力找出一个公式,但没有运气......有什么建议吗?

谢谢

【问题讨论】:

    标签: excel sum


    【解决方案1】:

    另一个与之前提供的解决方案基本相同的解决方案:

    在C1中,输入以下公式:

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

    然后只需将公式向下拖动。

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

    【讨论】:

      【解决方案2】:

      首先是获取开始日期,这将是以下函数:

      =Now() - 7
      

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

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

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

      如果您计划将数值数据高于或低于您的输入范围,则需要显式调用总和和条件范围,如下所示:

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

      此外,您可能会发现您的结果最初以小数形式出现。这是 Excel 的日期序列格式,因此您可能需要将结果格式化为时间。

      希望有帮助!

      [编辑:在第二次通过时,如果您希望根据从和到日期对范围求和(因此您似乎在帖子中暗示的任何 7 天),请查找上一张海报的注释,即:

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

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

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

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

      总结快乐!]

      【讨论】:

        【解决方案3】:

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

        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, "&lt;="&amp; (A1- 7), $B$1:$B$13)

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-01
          • 2019-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-04
          相关资源
          最近更新 更多