Inhoudsopgave
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.