Vba: jak pisać funkcje sumif i sumifs


Do pisania funkcji SUMIF i SUMIFS przy użyciu języka VBA w programie Excel można używać następujących metod:

Metoda 1: Funkcja SUMIF w VBA

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

Ten konkretny przykład zsumuje wartości z zakresu B2:B12 tylko wtedy, gdy odpowiadająca wartość z zakresu A2:A12 będzie równa „Mavs” i przypisze wynik do komórki E2 .

Metoda 2: Funkcja SUMIFS w VBA

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

Ten konkretny przykład zsumuje wartości z zakresu C2:C12 tylko wtedy, gdy wartość z zakresu A2:A12 jest równa „Mavs” , a wartość z zakresu B2:B12 jest większa niż 20, a następnie przypisuje wynik do komórki E2 . .

Poniższe przykłady pokazują, jak zastosować każdą z tych metod w praktyce z następującym zbiorem danych w Excelu, który zawiera informacje o różnych koszykarzach:

Przykład 1: Funkcja SUMIF w VBA

Załóżmy, że chcemy obliczyć sumę wartości w kolumnie punktów tylko dla zawodników, którzy są w drużynie Mavs.

Możemy utworzyć następujące makro, aby wykonać tę funkcję SUMIF:

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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zauważ, że komórka E2 zawiera wartość 73 .

Stanowi to sumę wartości w kolumnie punktów zawodnika drużyny Mavs.

Możemy zweryfikować, czy jest to prawidłowe, ręcznie obliczając sumę wartości w kolumnie punktowej dla zawodników drużyny Mavs:

Suma punktów zawodników Mavs: 22 + 10 + 29 + 12 = 73 .

Przykład 2: Funkcja SUMIFS w VBA

Załóżmy, że chcemy obliczyć sumę wartości w kolumnie asyst tylko dla zawodników spełniających poniższe kryteria:

  • Gracz jest częścią zespołu Mavs.
  • Zawodnik zdobył ponad 20 punktów.

Możemy utworzyć następujące makro, aby wykonać tę funkcję SUMIFS:

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

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zauważ, że komórka E2 zawiera wartość 18 .

Stanowi to sumę wartości w kolumnie punktów dla zawodników drużyny Mavs, którzy zdobyli więcej niż 20 punktów.

Uwaga : w tym przykładzie utworzyliśmy funkcję SUMIFS przy użyciu dwóch zakresów kryteriów, ale w metodzie WorksheetFunction.SumIfs można użyć dowolnej liczby zakresów kryteriów.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak pisać funkcje COUNTIFS i COUNTIFS
VBA: Jak napisać funkcje ŚREDNIA.JEŻELI i ŚREDNIA.JEŻELI

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *