excel电子表格中基于当前date的单元格总数

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

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

我想总结val行,但只能到当前date。 所以如果今天是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) 

大概是它与参考和查找有关,但我并不真正熟悉如何工作….

您可以使用SUMIF:

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

假设你的date是在a1:e1,你的值是在a2:e2。

OFFSETfunction应该完成这项工作。 这里也有类似的问题。 不知道你的桌子的确切布局,我想你的公式看起来像这样:

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

DAY(TODAY())返回当月的date。 然后这个数字被用作在OFFSET中SUM的范围的宽度。

我希望这个比较清楚。 祝你好运。

把这个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]是您想要求和的date的单元格。 工作表单元格的值将是总和

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

  1. 使用sumifs

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

  2. 使用sumproduct

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

  3. 使用偏移量

    = SUM(OFFSET(B1,MATCH(F3,A2:A15,0),0,MATCH(F4,A2:A15,0)-match(F3,A2:A15,0)+1,1))

如果date范围在A列中,并且val范围在B列中。

在这里输入图像说明

在这里输入图像说明