Суффи с массивом условно - PullRequest
4 голосов
/ 14 июля 2011

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

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

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

1 Ответ

1 голос
/ 14 июля 2011

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

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

...