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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *