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