VBA COUNTIF Functie in Excel (6 voorbeelden)

  • Deel Dit
Hugh West

De COUNTIF functie in Excel wordt gebruikt om het aantal cellen binnen een bereik te tellen die voldoen aan de gegeven voorwaarde. In dit artikel laten we zien hoe u de COUNTIF functie in Excel met VBA macro.

Werkboek downloaden

U kunt de gratis oefen Excel-werkmap hier downloaden.

COUNTIF-functie met VBA.xlsm

COUNTIF Functie in Excel

  • Syntax

WorksheetFunction.CountIf( Arg1 Als bereik, Arg2 ) Als dubbel

  • Parameters
Parameter Vereist/ Facultatief Gegevenstype Beschrijving
Arg1 Vereist Bereik

De reeks cellen van de telcellen.

Arg2 Vereist Variant Een getal, uitdrukking, celverwijzing of tekst die bepaalt welke cellen moeten worden geteld. De uitdrukking kan bijvoorbeeld 20, "20", ">20", "fruit" of B2 zijn.
  • Type terugkeer

Waarde als dubbel

6 voorbeelden van het gebruik van de COUNTIF-functie in Excel met VBA

In dit deel leert u hoe u de COUNTIF functie in Excel om teksten, getallen enz. te tellen met VBA code.

1. Werkbladfunctie met COUNTIF in Excel VBA

Excel's WerkbladFunctie kan worden gebruikt om de meeste andere functies in Excel aan te roepen die beschikbaar zijn binnen de functie invoegen dialoogvenster in Excel en de COUNTIF functie is een van die functies.

Met het bovenstaande voorbeeld zullen we leren hoe we de WerkbladFunctie met COUNTIF om gegevens te tellen met VBA in Excel.

Stappen:

  • Druk op Alt + F11 op uw toetsenbord of ga naar de tab Ontwikkelaar -> Visual Basic om te openen Visual Basic-editor .

  • In het pop-up codevenster, klik in de menubalk op Invoegen -> Module .

  • Kopieer de volgende code en plak die in het codevenster.
 Sub ExCOUNTIF() Bereik("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") End Sub 

Uw code is nu klaar om te draaien.

  • Druk op F5 op uw toetsenbord of selecteer in de menubalk Run -> Run Sub/UserForm U kunt ook gewoon op de klein pictogram Play in de submenubalk om de macro uit te voeren.

We wilden weten hoeveel getallen er in onze dataset zijn die kleiner zijn dan 3. Dus na het uitvoeren van de code kregen we het resultaat van 4, wat het aantal getallen is dat kleiner is dan 3 voor onze dataset.

Lees meer: Hoe COUNTIF tussen twee getallen gebruiken (4 methoden)

2. COUNTIF Functie om een specifieke tekst te tellen in Excel

Als u een specifieke tekst wilt tellen, zoals hoeveel steden of namen of voedingsmiddelen enz. er in een Excel-blad staan, dan kunt u gebruik maken van de COUNTIF functie in VBA .

Uit het bovenstaande voorbeeld zullen we leren hoe we de COUNTIF om te tellen hoeveel keer de naam John komt in onze dataset voor met VBA macro.

Stappen:

  • Dezelfde manier als voorheen, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Kopieer in het codevenster de volgende code en plak deze.
 Sub CountifText() 'invoer countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'uitvoer Range("E7") = countName End Sub 

Uw code is nu klaar om te draaien.

  • Ren de macro en je krijgt de totale telling.

Als u de tekst niet rechtstreeks in uw code wilt schrijven, kunt u deze eerst in een variabele opslaan en later in de code doorgeven. Net als de onderstaande code,

 Sub CountifText() 'invoer Name = Range("E6") countName = WorksheetFunction.CountIf(Range("B5:B10"), Name) 'uitvoer Range("E7") = countName End Sub 

Lees meer: Tekst tellen aan het begin met COUNTIF & LEFT functies in Excel

3. COUNTIF-functie om getal te berekenen met VBA

U kunt gebruik maken van de COUNTIF functie om er bepaalde resultaten uit te halen.

Uit het bovenstaande voorbeeld zullen we leren hoe we de COUNTIF om te tellen hoeveel nummers er in onze dataset zijn die... groter dan 1,1 met VBA macro.

Stappen:

  • Dezelfde manier als voorheen, open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Kopieer in het codevenster de volgende code en plak deze.
 Sub CountifNumber() 'input countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'output Range("E7") = countNum End Sub 

Uw code is nu klaar om te draaien.

  • Ren de macro en je krijgt de totale telling.

Zoals eerder besproken, als je het getal niet direct in je code wilt schrijven, kun je het eerst opslaan in een variabele en later de variabele doorgeven in de code. Net als de onderstaande code,

 Sub CountifNumber() 'input Num = Range("E6") countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">" & Num) 'output Range("E7") = countNum End Sub 

Lees meer: Excel COUNTIF met criteria groter dan en kleiner dan

Vergelijkbare lezingen

  • Excel COUNTIF Functie om cellen groter dan 0 te tellen
  • Hoe IF- en COUNTIF-functies samen gebruiken in Excel
  • Excel COUNTIF om cel te tellen die tekst van een andere cel bevat
  • Hoe de COUNTIF-functie gebruiken om percentages te berekenen in Excel

4. COUNTIF-functie met een objectbereik in Excel

U kunt een groep cellen toewijzen aan de Bereik Object en gebruik dan dat Bereik Object om waarden te tellen in Excel.

Stappen:

  • Open Visual Basic-editor van de Ontwikkelaar tab en Plaats a Module in het codevenster.
  • Kopieer in het codevenster de volgende code en plak deze.
 Sub ExCountIFRange() Dim iRng As Range 'wijs het celbereik toe Stel iRng = Range("B5:B10") 'gebruik het bereik in de formule Range("B13") = WorksheetFunction.SumIf(iRng, ">1") 'geef het bereikobject vrij Set iRng = Nothing End Sub 

Uw code is nu klaar om te draaien.

  • Ren de code en je krijgt de totale telling met een sommatiewaarde.

Lees meer: Hoe COUNTIF gebruiken voor niet aaneengesloten bereik in Excel

5. COUNTIF-formulemethode in Excel

U kunt ook de Formule en/of FormuleR1C1 methode om een COUNTIF naar een cel in VBA Deze methoden zijn flexibeler bij het uitvoeren van dergelijke operaties.

5.1. Formulemethode

De formule methode maakt het mogelijk het bereik van cellen te specificeren als B5:B10 in het onderstaande voorbeeld.

Stappen:

  • In het codevenster van de Visual Basic-editor kopieer de volgende code en plak die.
 Option Explicit Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10, "">1"")" End Sub 

Uw code is nu klaar om te draaien.

Dit stukje code geeft je de totale telling van de gegevens die je nodig hebt.

5.2. Methode FormuleR1C1

De formuleR1C1 methode is flexibeler omdat ze zich niet beperkt tot een vast bereik van cellen.

Met dezelfde dataset zullen we nu leren hoe we FormuleR1C1 om waarden te tellen in VBA .

Stappen:

  • In het codevenster van de Visual Basic-editor kopieer de volgende code en plak die.
 Option Explicit Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub 

Uw code is nu klaar om te draaien.

Deze code geeft u ook de totale telling van de gegevens die u nodig hebt.

Als u het uitvoerbereik niet wilt instellen, kunt u deze code nog flexibeler maken door zo te schrijven,

 Option Explicit Sub ExCountIfFormulaRC() ActiveCell.FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub 

De formule telt de cellen die aan de voorwaarde voldoen en plaatst het antwoord in de ActiveCell in je werkblad. Het bereik binnen de COUNTIF functie moet worden aangeduid met de Rij (R) en Kolom (C) syntax.

Lees meer: Hoe COUNTIF toepassen tussen twee celwaarden in Excel

6. Resultaat van de COUNTIF-functie aan een variabele toewijzen

Indien u het resultaat van uw formule elders wilt gebruiken in plaats van in uw Excel-dataset, kunt u het resultaat toewijzen aan een variabele en het later in uw code gebruiken.

De VBA code daarvoor is,

 Sub AssignCountIfVariable() Dim iResult As Double 'Wijs de variabele iResult toe = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") 'Toon het resultaat MsgBox "The count of cells with value less than 3 is " & iResult End Sub 

Het resultaat wordt getoond in het Excel-berichtvak.

Lees meer: COUNTIF Excel Voorbeeld (22 voorbeelden)

Conclusie

Dit artikel liet zien hoe je de COUNTIF functie in Excel met VBA Ik hoop dat dit artikel nuttig voor je is geweest. Voel je vrij om vragen te stellen als je vragen hebt over het onderwerp.

Hugh West is een zeer ervaren Excel-trainer en -analist met meer dan 10 jaar ervaring in de branche. Hij heeft een bachelor in Accounting en Finance en een master in Business Administration. Hugh heeft een passie voor lesgeven en heeft een unieke lesaanpak ontwikkeld die gemakkelijk te volgen en te begrijpen is. Zijn deskundige kennis van Excel heeft duizenden studenten en professionals over de hele wereld geholpen hun vaardigheden te verbeteren en uit te blinken in hun carrière. Via zijn blog deelt Hugh zijn kennis met de wereld en biedt hij gratis Excel-tutorials en online trainingen aan om individuen en bedrijven te helpen hun volledige potentieel te bereiken.