Суммеслимн с различными условными
Я удивлен, что нигде не могу найти это, что заставляет меня думать, что я должен идти об этом неправильно. Я хочу иметь возможность включить ряд значений в sumifs, чтобы он выполнялся как цикл для каждого значения в условном (без необходимости писать " + sumifs(....) для каждого значения. Вот пример того, что у меня до сих пор не работает
`=SUMIFS(Sum,Range1,Criteria1, '[Stores.xlsx]Sheet1'!$H:$H, "Store #"&Regions!$T:$T&"*")`
Итак, я пытаюсь передать каждое значение в регионах!Т: т как критерий.
Например, "магазин №150 Лос-Анджелес" и " магазин #155 Сан-Диего " оба должны быть переданы через аргумент. В настоящее время формула просто возвращает первый элемент, которому она соответствует, и не переходит к следующему элементу.
Надеюсь, это имеет смысл. Пожалуйста, спросите, если вам нужно больше ясности.
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
Опять же, я уверен, что есть способ сделать этот цикл с формулой, но поиск вокруг, это не было очевидно для меня.