Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel电子表格中基于当前日期的单元格总数_Excel_Excel Formula - Fatal编程技术网

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

excel电子表格中基于当前日期的单元格总数,excel,excel-formula,Excel,Excel Formula,我有一个这样的电子表格: 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 d

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

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)
=总和(B2:2)
想必这与引用和查找有关,但我对它们的工作原理并不太熟悉……

应该做这项工作。还有一个类似的问题。在不知道表格的确切布局的情况下,我猜您的公式会如下所示:

=SUM(OFFSET(B2,0,0,1,DAY(TODAY()))) 
其中DAY(TODAY())返回月份中的日期。然后将该数字用作要在偏移量中求和的范围宽度

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

如果:

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

=SUMIF(A1:E1),将此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

其中,
[起始日期单元格]
是包含希望求和的日期的单元格。工作表单元格的值将是求和

有三种方法可以获取日期之间的值之和

  • 使用sumifs

    =SUMIFS(B2:B15,A2:A15,“>=”&F3,A2:A15,“这同样有效:=SUM(偏移量(C2,0,0,1,YEARFRAC(C1,TODAY())*360+1))(不能计算对应于偏移量的天数),但它更复杂。。。
    =GetTotal([starting date cell])