VBA COUNTIF-funktionen i Excel (6 exempel)

  • Dela Detta
Hugh West

COUNTIF i Excel används för att räkna antalet celler inom ett intervall som uppfyller ett givet villkor. I den här artikeln visar vi hur du använder funktionen COUNTIF funktionen i Excel med VBA makro.

Ladda ner arbetsboken

Du kan ladda ner den kostnadsfria Excel-arbetsboken för övningar här.

COUNTIF-funktionen med VBA.xlsm

COUNTIF-funktionen i Excel

  • Syntax

WorksheetFunction.CountIf( Arg1 Som sortiment, Arg2 ) som dubbel

  • Parametrar
Parameter Obligatoriskt/ frivilligt Datatyp Beskrivning
Arg1 Krävs Utbud

Området av celler från räkna celler.

Arg2 Krävs Variant Ett tal, ett uttryck, en cellreferens eller text som definierar vilka celler som ska räknas. Uttrycket kan till exempel vara 20, "20", ">20", "frukt" eller B2.
  • Typ av retur

Värde som Double

6 exempel på användning av COUNTIF-funktionen i Excel med VBA

I det här avsnittet lär du dig hur du använder COUNTIF funktion i Excel för att räkna texter, siffror etc. med VBA kod.

1. WorksheetFunction med COUNTIF i Excel VBA

Excels ArbetsbladFunktion kan användas för att anropa de flesta andra funktioner i Excel som är tillgängliga i Insert-funktionen i Excel och i dialogrutan COUNTIF är en av dessa funktioner.

Med exemplet ovan lär vi oss hur man använder ArbetsbladFunktion med COUNTIF för att räkna uppgifter med VBA i Excel.

Steg:

  • Tryck på Alt + F11 på tangentbordet eller gå till fliken Utvecklare -> Visual Basic för att öppna Redigerare för Visual Basic .

  • I popup-kodfönstret klickar du i menyraden på Infoga -> Modul .

  • Kopiera följande kod och klistra in den i kodfönstret.
 Sub ExCOUNTIF() Range("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") End Sub 

Din kod är nu redo att köras.

  • Tryck på F5 på tangentbordet eller välj i menyraden Kör -> Kör Sub/UserForm Du kan också bara klicka på liten Play-ikon i undermenyfältet för att köra makrot.

Vi ville ta reda på hur många nummer i vårt dataset som är mindre än 3. Efter att ha kört koden fick vi resultatet 4, vilket är antalet nummer som är mindre än 3 i vårt dataset.

Läs mer: Hur man använder COUNTIF mellan två tal (4 metoder)

2. COUNTIF-funktionen för att räkna en viss text i Excel

Om du vill räkna en specifik text, t.ex. hur många städer, namn eller livsmedel etc. som finns i ett Excel-ark, kan du använda COUNTIF funktion i VBA .

Från exemplet ovan lär vi oss hur man använder COUNTIF för att räkna hur många gånger namnet John förekommer i vårt dataset med VBA makro.

Steg:

  • På samma sätt som tidigare, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub CountifText() 'input countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'output Range("E7") = countName End Sub 

Din kod är nu redo att köras.

  • Kör makrot och du får det totala antalet.

Om du inte vill skriva texten direkt i koden kan du först lagra den i en variabel och sedan skicka variabeln i koden, som i koden nedan,

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

Läs mer: Räkna text i början med COUNTIF & LEFT-funktioner i Excel

3. COUNTIF-funktionen för att beräkna antal med VBA

Du kan använda dig av COUNTIF funktion för att få fram vissa resultat.

Från exemplet ovan lär vi oss hur man använder COUNTIF för att räkna hur många nummer som finns i vårt dataset som är större än 1,1 med VBA makro.

Steg:

  • På samma sätt som tidigare, öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub CountifNumber() 'input countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'output Range("E7") = countNum End Sub 

Din kod är nu redo att köras.

  • Kör makrot och du får det totala antalet.

Om du inte vill skriva numret direkt i koden kan du, som tidigare nämnts, först lagra det i en variabel och sedan skicka variabeln i koden,

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

Läs mer: Excel COUNTIF med kriterierna större än och mindre än

Liknande läsningar

  • Excel COUNTIF-funktion för att räkna celler som är större än 0
  • Hur man använder IF- och COUNTIF-funktionerna tillsammans i Excel
  • Excel COUNTIF för att räkna cell som innehåller text från en annan cell
  • Hur man använder COUNTIF-funktionen för att beräkna procentandelar i Excel

4. COUNTIF-funktionen med ett intervall av objekt i Excel

Du kan tilldela en grupp celler till Objekt för räckvidd och sedan använda den Objekt för räckvidd för att räkna värden i Excel.

Steg:

  • Öppna Redigerare för Visual Basic från Utvecklare och Infoga a Modul i kodfönstret.
  • I kodfönstret kopierar du följande kod och klistrar in den.
 Sub ExCountIFRange() Dim iRng As Range 'tilldela området med celler Set iRng = Range("B5:B10") 'använda området i formeln Range("B13") = WorksheetFunction.SumIf(iRng, ">1") 'släppa objektet för området Set iRng = Nothing End Sub 

Din kod är nu redo att köras.

  • Kör koden och du får det totala antalet med ett summeringsvärde.

Läs mer: Hur man använder COUNTIF för icke sammanhängande intervall i Excel

5. COUNTIF-formelmetod i Excel

Du kan också använda Formel och/eller FormelR1C1 metod för att tillämpa en COUNTIF till en cell i VBA Dessa metoder är mer flexibla när det gäller sådana operationer.

5.1. Formelmetod

Formeln Metoden gör det möjligt att ange ett intervall av celler som B5:B10 visas nedan i exemplet.

Steg:

  • I kodfönstret i Redigerare för Visual Basic kopiera följande kod och klistra in den.
 Option Explicit Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10, "">1"")" End Sub 

Din kod är nu redo att köras.

Den här koden ger dig det totala antalet data som du behöver.

5.2. FormelR1C1-metoden

FormelnR1C1 metoden är mer flexibel eftersom den inte begränsar sig till ett visst antal celler.

Med samma dataset ska vi nu lära oss hur man använder FormelR1C1 för att räkna värden i VBA .

Steg:

  • I kodfönstret i Redigerare för Visual Basic kopiera följande kod och klistra in den.
 Option Explicit Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub 

Din kod är nu redo att köras.

Denna kod ger dig också den totala mängden data som du behöver.

Om du inte vill ställa in utgångsintervallet kan du göra den här koden ännu mer flexibel genom att skriva så här,

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

Formeln räknar de celler som uppfyller villkoret och placerar svaret i fältet ActiveCell i arbetsbladet. Området inom COUNTIF måste hänvisas till med hjälp av Rad (R) och Kolumn (C) syntax.

Läs mer: Hur man tillämpar COUNTIF mellan två cellvärden i Excel

6. Tilldelning av resultatet av COUNTIF-funktionen till en variabel

Om du vill använda resultatet av formeln någon annanstans än i Excel-datasetet kan du tilldela resultatet till en variabel och använda det senare i koden.

VBA koden för detta är,

 Sub AssignCountIfVariable() Dim iResult As Double 'Tilldela variabeln iResult = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") 'Visa resultatet MsgBox "Antalet celler med värde mindre än 3 är " & iResult End Sub 

Resultatet visas i Excel-meddelanderutan.

Läs mer: COUNTIF Excel exempel (22 exempel)

Slutsats

Den här artikeln visade dig hur du använder COUNTIF funktionen i Excel med VBA Jag hoppas att den här artikeln har varit till stor nytta för dig. Du får gärna fråga om du har några frågor om ämnet.

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.