Vba: sumif- en sumifs-functies schrijven
U kunt de volgende methoden gebruiken om de functies SUMIF en SUMIFS te schrijven met VBA in Excel:
Methode 1: SUMIF-functie in VBA
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Dit specifieke voorbeeld somt de waarden in het bereik B2:B12 alleen op als de overeenkomstige waarde in het bereik A2:A12 gelijk is aan „Mavs“ en wijst het resultaat toe aan cel E2 .
Methode 2: SUMIFS-functie in VBA
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub
In dit specifieke voorbeeld worden de waarden in het bereik C2:C12 alleen opgeteld als 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 het resultaat vervolgens 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: SUMIF-functie in VBA
Laten we zeggen dat we de som van de waarden in de puntenkolom alleen willen berekenen voor spelers die in het Mavs-team zitten.
We kunnen de volgende macro maken om deze SUMIF-functie uit te voeren:
SubSumif_Function ()
Range(" E2 ") = WorksheetFunction.Sumif(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Merk op dat cel E2 de waarde 73 bevat.
Dit vertegenwoordigt de som van de waarden in de puntenkolom voor de Mavs-teamspeler.
We kunnen verifiëren dat dit correct is door handmatig de som van de waarden in de puntenkolom voor de Mavs-teamspelers te berekenen:
Totaal aantal punten voor Mavs-spelers: 22 + 10 + 29 + 12 = 73 .
Voorbeeld 2: SUMIFS-functie in VBA
Laten we zeggen dat we de som van de waarden in de assistskolom alleen 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 SUMIFS-functie uit te voeren:
Sub Sumifs_Function()
Range(" E2 ") = WorksheetFunction.SumIfs(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 18 bevat.
Dit vertegenwoordigt de som van de waarden in de puntenkolom voor Mavs-teamspelers die meer dan 20 punten hebben gescoord.
Opmerking : in dit voorbeeld hebben we een SUMIFS-functie gemaakt met behulp van twee criteriabereiken, maar u kunt zoveel criteriabereiken gebruiken als u wilt in de methode WorksheetFunction.SumIfs .
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven
VBA: Hoe AVERAGEIF- en AVERAGEIFS-functies te schrijven