5

我有一个这样的电子表格:

date | 7/1 | 7/2 | 7/3 | 7/4
-----|-----|-----|-----|-----
 val |  3  |  5  |  1  |  3  
-----|-----|-----|-----|-----

我想总结 val 行,但仅限于当前日期。所以如果今天是 7/3,那么总和就是 3+5+1=9。如果今天是 7/4,那就是 12。

我想出这个来获得列数:

=YEARFRAC(B1,TODAY())*360  // B1 is the first date -- 7/1

但我不知道如何告诉excel做总和:

=SUM(B2:<B+num cols above>2)

大概它与引用和查找有关,但我并不真正熟悉这些是如何工作的......

4

4 回答 4

13

您可以使用 SUMIF:

=SUMIF(A1:E1,"<="&TODAY(),A2:E2)

假设您的日期在 a1:e1 中,而您的值在 a2:e2 中。

于 2009-07-08T23:03:11.210 回答
0

OFFSET 功能应该可以完成这项工作。这里有一个类似的问题。在不知道表格的确切布局的情况下,我猜您的公式看起来像:

=SUM(OFFSET(B2,0,0,1,DAY(TODAY()))) 

其中 DAY(TODAY()) 返回月份中的某一天。然后将此数字用作在 OFFSET 中求和的范围的宽度。

我希望那是相对清楚的。祝你好运。

于 2009-07-08T22:55:45.687 回答
0

将此 VBA 放入模块中

Option Explicit

Public Function GetTotal(StartCell As Range) As Integer 
    Dim i As Integer, j As Integer

    i = StartCell.Row
    j = StartCell.Column

    If Cells(i, j) > Date Then
        GetTotal = 0
        Exit Function
    End If

    While Cells(i, j) <> DateAdd("d", 1, Date) 'values up to an including today'
        GetTotal = GetTotal + Cells(i + 1, j)
        j = j + 1
    Wend

End Function

然后通过插入在工作表单元格中使用它

=GetTotal([starting date cell])

[starting date cell]您想要总和的日期所在的单元格在哪里。工作表单元格的值将是总和

于 2009-07-08T23:17:14.100 回答
0

有三种方法可以获得日期之间的值的总和。

  1. 使用 sumifs

    =SUMIFS(B2:B15,A2:A15,">="&F3,A2:A15,"<="&F4)

  2. 使用 sumproduct

    =SUMPRODUCT((A2:A15>=F3)*(A2:A15<=F4),B2:B15)

  3. 使用偏移量

    =总和(偏移量(B1,匹配(F3,A2:A15,0),0,匹配(F4,A2:A15,0)-匹配(F3,A2:A15,0)+1,1))

如果日期范围在 A 列中,而 val 范围在 B 列中。

在此处输入图像描述

在此处输入图像描述

于 2016-07-19T21:58:49.827 回答