Суммеслимн с различными условными


Я удивлен, что нигде не могу найти это, что заставляет меня думать, что я должен идти об этом неправильно. Я хочу иметь возможность включить ряд значений в sumifs, чтобы он выполнялся как цикл для каждого значения в условном (без необходимости писать " + sumifs(....) для каждого значения. Вот пример того, что у меня до сих пор не работает

`=SUMIFS(Sum,Range1,Criteria1, '[Stores.xlsx]Sheet1'!$H:$H, "Store #"&Regions!$T:$T&"*")`

Итак, я пытаюсь передать каждое значение в регионах!Т: т как критерий.
Например, "магазин №150 Лос-Анджелес" и " магазин #155 Сан-Диего " оба должны быть переданы через аргумент. В настоящее время формула просто возвращает первый элемент, которому она соответствует, и не переходит к следующему элементу.
Надеюсь, это имеет смысл. Пожалуйста, спросите, если вам нужно больше ясности.

1 4

1 ответ:

Я думаю, что проще всего запустить "промежуточный" столбец рядом со столбцом 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

Опять же, я уверен, что есть способ сделать этот цикл с формулой, но поиск вокруг, это не было очевидно для меня.