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

Einen Kommentar hinzufügen

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