Vba: so schreiben sie sumif- und sumifs-funktionen
Sie können die folgenden Methoden verwenden, um SUMIF- und SUMIFS-Funktionen mit VBA in Excel zu schreiben:
Methode 1: SUMIF-Funktion in VBA
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
In diesem speziellen Beispiel werden die Werte im Bereich B2:B12 nur dann summiert, wenn der entsprechende Wert im Bereich A2:A12 „Mavs“ entspricht, und das Ergebnis wird der Zelle E2 zugewiesen.
Methode 2: SUMIFS-Funktion in VBA
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
In diesem speziellen Beispiel werden die Werte im Bereich C2:C12 nur dann summiert, wenn der Wert im Bereich A2:A12 „Mavs“ entspricht und der Wert im Bereich B2:B12 größer als 20 ist. Anschließend wird das Ergebnis der Zelle E2 zugewiesen. .
Die folgenden Beispiele zeigen, wie jede dieser Methoden in der Praxis mit dem folgenden Datensatz in Excel verwendet wird, der Informationen über verschiedene Basketballspieler enthält:
Beispiel 1: SUMIF-Funktion in VBA
Nehmen wir an, wir möchten die Summe der Werte in der Punktespalte nur für Spieler berechnen, die im Mavs-Team sind.
Wir können das folgende Makro erstellen, um diese SUMIF-Funktion auszuführen:
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Beachten Sie, dass Zelle E2 den Wert 73 enthält.
Dies stellt die Summe der Werte in der Punktespalte für den Mavs-Teamspieler dar.
Wir können überprüfen, ob dies korrekt ist, indem wir die Summe der Werte in der Punktespalte für die Spieler des Mavs-Teams manuell berechnen:
Summe der Punkte für Mavs-Spieler: 22 + 10 + 29 + 12 = 73 .
Beispiel 2: SUMIFS-Funktion in VBA
Nehmen wir an, wir möchten die Summe der Werte in der Assists-Spalte nur für Spieler berechnen, die die folgenden Kriterien erfüllen:
- Der Spieler ist Teil des Mavs-Teams.
- Der Spieler hat mehr als 20 Punkte erzielt.
Wir können das folgende Makro erstellen, um diese SUMIFS-Funktion auszuführen:
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:
Beachten Sie, dass Zelle E2 den Wert 18 enthält.
Dies stellt die Summe der Werte in der Punktespalte für Mavs-Teamspieler dar, die mehr als 20 Punkte erzielt haben.
Hinweis : In diesem Beispiel haben wir eine SUMIFS-Funktion mit zwei Kriterienbereichen erstellt, aber Sie können in der WorksheetFunction.SumIfs -Methode so viele Kriterienbereiche verwenden, wie Sie möchten.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:
VBA: So schreiben Sie COUNTIF- und COUNTIFS-Funktionen
VBA: So schreiben Sie die Funktionen AVERAGEIF und AVERAGEIFS