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