Я думаю, что проще всего начать «промежуточный» столбец рядом со столбцом T, сделать sumifs
для каждой строки этого столбца, а затем сложить этот столбец в другую ячейку.Таблицы или даже просто суммы массивов также могут быть полезны здесь.
Я придумал следующее в VBA, но не могу полностью это проверить:
Option Explicit
Function SumSumIfs(ByVal inp As Range) As Integer
Dim i As Integer
Dim QBData As Worksheet
Dim Stores As Worksheet
Set QBData = Workbooks.Open("QBData.xlsx").Sheets("Sheet1")
Set Stores = Workbooks.Open("Stores.xlsx").Sheets("Sheet1")
Dim QBRange1, QBRange2, SalesRange As Range
Set QBRange1 = QBData.Range("H1:H" & Range("H1").End(xlDown).Row)
Set QBRange2 = QBData.Range("I1:I" & Range("I1").End(xlDown).Row)
Set SalesRange = QBData.Range("H1:H" & QBData.Range("H1").End(xlDown).Row)
For i = 1 To inp.End(xlDown).Row
SumSumIfs = SumSumIfs + Application.WorksheetFunction.SumIfs(QBRange1, QBRange2, _
"=" & Stores.Cells(16, 5), StoreRange3, "=" & inp.Cells(i, 19))
Next i
End Function
Опять же, я уверен, что естьспособ сделать это с формулой, но поиск вокруг меня не был очевиден.