我有一个这样的电子表格:
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)
据推测它与引用和查找有关,但我并不熟悉这些工作方式......
答案 0 :(得分:11)
您可以使用SUMIF:
=SUMIF(A1:E1,"<="&TODAY(),A2:E2)
假设您的日期在a1:e1,而您的值在a2:e2。
答案 1 :(得分:0)
OFFSET function应该完成这项工作。有一个类似的问题here。如果不知道桌子的确切布局,我猜你的公式看起来像是:
=SUM(OFFSET(B2,0,0,1,DAY(TODAY())))
DAY(TODAY())返回当月的日期。然后将此数字用作OFFSET中SUM的范围宽度。
我希望相对清楚。祝你好运。
答案 2 :(得分: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]
是具有您想要总和的日期的单元格。工作表单元格的值将是总和
答案 3 :(得分:0)