Vba: как писать функции суммесли и суммесли


Вы можете использовать следующие методы для написания функций СУММЕСЛИ и СУММЕСЛИ с использованием VBA в Excel:

Способ 1: функция СУММЕСЛИ в VBA

 SubSumif_Function ()
    Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

В этом конкретном примере значения в диапазоне B2:B12 суммируются только тогда, когда соответствующее значение в диапазоне A2:A12 равно «Mavs», и результат присваивается ячейке E2 .

Способ 2: функция SUMIFS в VBA

 Sub Sumifs_Function()
    Range(" E2 ") = WorksheetFunction.SumIfs(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

Допустим, мы хотим посчитать сумму значений в столбце очков только для игроков, состоящих в команде «Мавс».

Мы можем создать следующий макрос для выполнения этой функции СУММЕСЛИ:

 SubSumif_Function ()
    Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что ячейка E2 содержит значение 73 .

Это представляет собой сумму значений в столбце очков для игрока команды Mavs.

В правильности этого мы можем убедиться, посчитав вручную сумму значений в столбце очков для игроков команды «Мавс»:

Сумма очков игроков «Мавс»: 22+10+29+12= 73 .

Пример 2: функция СУММИФС в VBA

Допустим, мы хотим посчитать сумму значений в столбце передач только для игроков, соответствующих следующим критериям:

  • Игрок выступает за команду Мавс.
  • Игрок набрал более 20 очков.

Мы можем создать следующий макрос для выполнения этой функции SUMIFS:

 Sub Sumifs_Function()
    Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что ячейка E2 содержит значение 18 .

Это сумма значений в столбце очков для игроков команды Мавс, набравших более 20 очков.

Примечание . В этом примере мы создали функцию СУММИФС, используя два диапазона критериев, но вы можете использовать столько диапазонов критериев, сколько захотите, в методе WorksheetFunction.SumIfs .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как писать функции COUNTIF и COUNTIFS
VBA: как написать функции СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИФС

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

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