Vba: hoe averageif- en averageifs-functies te schrijven


U kunt de volgende methoden gebruiken om de functies AVERAGEIF en AVERAGEIFS te schrijven met VBA in Excel:

Methode 1: AVERAGEIF-functie in VBA

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

Dit specifieke voorbeeld berekent de gemiddelde waarde in het bereik B2:B12 waarbij de overeenkomstige waarde in het bereik A2:A12 gelijk is aan „Mavs“, en wijst het resultaat vervolgens toe aan cel E2 .

Methode 2: AVERAGEIFS-functie in VBA

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

Dit specifieke voorbeeld berekent de gemiddelde waarde in het bereik C2:C12 waarbij de waarde in het bereik A2:A12 gelijk is aan „Mavs“ en de waarde in het bereik B2:B12 groter is dan 20, en wijst vervolgens het resultaat toe aan cel E2 . .

De volgende voorbeelden laten zien hoe u elk van deze methoden in de praktijk kunt gebruiken met de volgende dataset in Excel die informatie bevat over verschillende basketbalspelers:

Voorbeeld 1: AVERAGEIF-functie in VBA

Laten we zeggen dat we de gemiddelde waarde in de puntenkolom willen berekenen voor spelers in het Mavs-team.

We kunnen de volgende macro maken om deze AVERAGEIF-functie uit te voeren:

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

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

Merk op dat cel E2 een waarde van 18,25 bevat.

Dit vertelt ons dat de gemiddelde waarde in de puntenkolom voor Mavs-teamspelers 18,25 is.

We kunnen verifiëren dat dit correct is door handmatig de gemiddelde spelerspuntwaarde op de Mavs te berekenen:

Gemiddelde punten van Mavs-speler: (22 + 10 + 29 + 12) / 4 = 18,25 .

Voorbeeld 2: AVERAGEIFS-functie in VBA

Stel dat we de gemiddelde waarde in de assistskolom willen berekenen voor spelers die aan de volgende criteria voldoen:

  • De speler maakt deel uit van het Mavs-team.
  • De speler scoorde meer dan 20 punten.

We kunnen de volgende macro maken om deze AVERAGEIFS-functie uit te voeren:

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

Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:

Merk op dat cel E2 de waarde 9 bevat.

Dit vertelt ons dat de gemiddelde assists onder spelers die in het Mavs-team zitten en meer dan 20 punten hebben gescoord, 9 zijn.

Opmerking : in dit voorbeeld hebben we een functie AVERAGEIFS gemaakt met behulp van twee criteriabereiken, maar u kunt zoveel criteriabereiken gebruiken als u wilt in de methode WorksheetFunction.AverageIfs .

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:

VBA: Hoe de gemiddelde waarde van het bereik te berekenen
VBA: SUMIF- en SUMIFS-functies schrijven
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven

Einen Kommentar hinzufügen

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