Vba: как написать функции срзначесли и срзначесли
Вы можете использовать следующие методы для написания функций СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИ с помощью VBA в Excel:
Способ 1: функция СРЗНАЧЕСЛИ в VBA
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
В этом конкретном примере будет рассчитано среднее значение в диапазоне B2:B12 , где соответствующее значение в диапазоне A2:A12 равно «Mavs», а затем присвоен результат ячейке E2 .
Способ 2: функция СРЗНАЧЕСЛИ в VBA
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
В этом конкретном примере будет рассчитано среднее значение в диапазоне C2:C12, где значение в диапазоне A2:A12 равно «Mavs» , а значение в диапазоне B2:B12 больше 20, а затем присвоен результат ячейке E2. . .
В следующих примерах показано, как использовать каждый из этих методов на практике со следующим набором данных в Excel, содержащим информацию о различных баскетболистах:
Пример 1: функция СРЗНАЧЕСЛИ в VBA
Допустим, мы хотим посчитать среднее значение в столбце очков для игроков команды «Мавс».
Мы можем создать следующий макрос для выполнения функции СРЗНАЧЕСЛИ:
Sub Averageif_Function()
Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что ячейка E2 содержит значение 18,25 .
Это говорит нам о том, что среднее значение в графе очков для игроков команды «Мавс» составляет 18,25.
Мы можем убедиться, что это правильно, вручную рассчитав среднее значение очков игрока на Mavs:
Среднее количество очков игрока «Мавс»: (22 + 10 + 29 + 12) / 4 = 18,25 .
Пример 2: функция СРЗНАЧЕСЛИ в VBA
Допустим, мы хотим посчитать среднее значение в столбце передач для игроков, соответствующих следующим критериям:
- Игрок выступает за команду Мавс.
- Игрок набрал более 20 очков.
Мы можем создать следующий макрос для выполнения этой функции СРЗНАЧЕСЛИ:
Sub Averageifs_Function()
Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что ячейка E2 содержит значение 9 .
Это говорит нам о том, что средний показатель результативных передач среди игроков, входящих в команду «Мавс» и набравших более 20 очков, равен 9.
Примечание . В этом примере мы создали функцию СРЗНАЧЕСЛИ, используя два диапазона критериев, но вы можете использовать столько диапазонов критериев, сколько захотите, в методе WorksheetFunction.AverageIfs .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: Как рассчитать среднее значение диапазона
VBA: как писать функции СУММЕСЛИ и СУММЕСЛИ
VBA: как писать функции COUNTIF и COUNTIFS