我有一个表格,其中日期作为行和列的标题-每个单元格将交易汇总,行中有起始日期,列中有清算日期。
例如
31/1/2019 28/2/2019 31/3/2019
31/1/2019 -100 -200 -300
28/2/2019 -10 -20 -30
31/3/2019 -1 -2 -3
我想要一个公式,对列标题和行标题小于或等于特定日期的矩阵求和。
使用上面的示例:
31/1/2019 = -100
28/2/2019 = -330
31/3/2019 = -666
答案 0 :(得分:0)
我已经尝试了一段时间来解决您对公式的要求,但是我无法这样做,因此我编写了一个小函数来作为公式工作。您需要输入以下代码:
Option Explicit
Function MySumIf(SumRange As Range, Criteria As Range) As Double
Dim arr, i As Long, j As Integer
arr = SumRange.Value
For i = 2 To UBound(arr)
For j = 2 To UBound(arr, 2)
If arr(i, 1) <= Criteria.Value And arr(1, j) <= Criteria.Value Then MySumIf = MySumIf + arr(i, j)
Next j
Next i
End Function
在VBA内的模块上。你该怎么做?在您的excel上按ALT+F11
,然后将用VBA弹出一个窗口->在左侧,您将看到一个名为Projects的窗口,在这里您用鼠标右键单击任何内容,然后插入->模块->粘贴代码出现在空白窗口中。
要使用此功能,只需像这样写=MySumIf(RangeToSumWithDates,DateCriteria)
:
结果是:
希望有帮助。唯一的缺点是您需要共享此代码才能为其他人工作或共享工作簿。
答案 1 :(得分:0)