Я пытаюсь написать какой-то код, но я столкнулся с неожиданной проблемой и надеялся, что кто-то здесь может помочь.VBA - Как вернуть одно значение из массива с помощью SUMIFS?
В основном у меня есть набор данных (около 150 тыс. Строк) и они использовали VBA для чтения их в массив. Теперь я хочу применить функцию SUMIFS для этого массива, однако я продолжаю получать возвращаемый массив, а не одно значение. Я использую что-то вдоль линий:
With Application
OutputArray(1, 1) = .SumIfs(.Index(MyArray, 0, 1), .Index(MyArray, 0, 2), ">0")
End With
Теперь я могу использовать .sum таким образом и получить одно значение. При применении той же самой функции .SumIfs, которая используется в VBA непосредственно на листе, я также получаю одно значение, но в коде VBA все, что я получаю, является массивом типа Error.
Суммарная суммарная суммарная сумма. Выходной массив - это вариант.
Если у меня отсутствует какая-либо дополнительная информация, пожалуйста, дайте мне знать.
'.Index' возвращает одно значение, но' .SumIfs' ожидает Если вы можете, попробуйте это как Формула Excel и опубликуйте его, чтобы я мог лучше понять, что он должен делать. – Slai
На самом деле, если поставить аргумент 0 для строки или столбца, он будет использовать весь диапазон и, как таковой, отлично работает. Я упомянул выше. Я выполнил тот же запрос, что и работала с формулой excel. Это формула: = SUMIFS (INDEX (A2: G154794,0,6), INDEX (A2, G154794,0,4), "31 ") – Glanyx
Интересно .. в Google Таблицах' = INDEX ({1,2; 3,4}, 0,2) 'приводит к' {2; 4} ', но у меня нет Excel дома, чтобы его проверить Можете ли вы рассказать мне, что такое тип возврата 'test = Application.Index (MyArray, 0, 1)' из [Locals] (http: // stackoverflo w.com/documentation/excel-vba/861/debugging-and-troubleshooting/8020/debugger-locals-window#t=201611251509367841724) окно? – Slai