Vba: so schreiben sie die funktionen averageif und averageifs


Sie können die folgenden Methoden verwenden, um AVERAGEIF- und AVERAGEIFS-Funktionen mit VBA in Excel zu schreiben:

Methode 1: AVERAGEIF-Funktion in VBA

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

In diesem speziellen Beispiel wird der Durchschnittswert im Bereich B2:B12 berechnet, wobei der entsprechende Wert im Bereich A2:A12 „Mavs“ entspricht, und dann das Ergebnis der Zelle E2 zugewiesen.

Methode 2: AVERAGEIFS-Funktion in VBA

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

In diesem speziellen Beispiel wird der Durchschnittswert im Bereich C2:C12 berechnet, wobei der Wert im Bereich A2:A12 gleich „Mavs“ 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: AVERAGEIF-Funktion in VBA

Nehmen wir an, wir möchten den Durchschnittswert in der Punktespalte für Spieler des Mavs-Teams berechnen.

Wir können das folgende Makro erstellen, um diese AVERAGEIF-Funktion auszuführen:

 Sub Averageif_Function()
    Range(" E2 ") = WorksheetFunction.AverageIf(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 18,25 enthält.

Dies sagt uns, dass der Durchschnittswert in der Punktespalte für Mavs-Teamspieler 18,25 beträgt.

Wir können überprüfen, ob dies korrekt ist, indem wir den durchschnittlichen Spielerpunktwert bei den Mavs manuell berechnen:

Durchschnittliche Punkte der Mavs-Spieler: (22 + 10 + 29 + 12) / 4 = 18,25 .

Beispiel 2: AVERAGEIFS-Funktion in VBA

Nehmen wir an, wir möchten den Durchschnittswert in der Assists-Spalte 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 AVERAGEIFS-Funktion auszuführen:

 Sub Averageifs_Function()
    Range(" E2 ") = WorksheetFunction.AverageIfs(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 9 enthält.

Dies zeigt uns, dass der durchschnittliche Assists-Wert unter den Spielern, die zum Mavs-Team gehören und mehr als 20 Punkte erzielt haben, bei 9 liegt.

Hinweis : In diesem Beispiel haben wir eine AVERAGEIFS-Funktion mit zwei Kriterienbereichen erstellt, Sie können jedoch in der WorksheetFunction.AverageIfs -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 berechnen Sie den Durchschnittswert des Bereichs
VBA: So schreiben Sie SUMIF- und SUMIFS-Funktionen
VBA: So schreiben Sie COUNTIF- und COUNTIFS-Funktionen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert