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之间的值的总和。
-
使用sumifs
= SUMIFS(B2:B15,A2:A15, “> =” &F3,A2:A15, “<=” &F4)
-
使用sumproduct
= SUMPRODUCT((A2:A15> = F3)*(A2:A15 <= F4),B2:B15)
-
使用偏移量
= 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列中。