Innehållsförteckning
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.