Indholdsfortegnelse
COUNTIF funktionen i Excel bruges til at tælle antallet af celler inden for et område, der opfylder en given betingelse. I denne artikel viser vi dig, hvordan du bruger funktionen COUNTIF funktion i Excel med VBA makro.
Download arbejdsbog
Du kan downloade den gratis Excel-arbejdsbog til øvelser her.
COUNTIF-funktion med VBA.xlsm
COUNTIF-funktion i Excel
- Syntaks
WorksheetFunction.CountIf( Arg1 Som rækkevidde, Arg2 ) As Double
- Parametre
Parameter | Krævet/ valgfri | Datatype | Beskrivelse |
---|---|---|---|
Arg1 | Påkrævet | Område | Området af celler fra tælleceller. |
Arg2 | Påkrævet | Variant | Et tal, et udtryk, en cellehenvisning eller tekst, der definerer, hvilke celler der skal tælles. Udtrykket kan f.eks. være 20, "20", ">20", "frugt" eller B2. |
- Returneringstype
Værdi som Double
6 eksempler på brug af COUNTIF-funktionen i Excel med VBA
I dette afsnit lærer du, hvordan du bruger COUNTIF funktion i Excel til at tælle tekster, tal osv. med VBA kode.
1. WorksheetFunction med COUNTIF i Excel VBA
Excel's WorksheetFunction kan bruges til at kalde de fleste af de andre funktioner i Excel, som er tilgængelige i indsætningsfunktionen dialogboksen i Excel og den COUNTIF er en af disse funktioner.
Med ovenstående eksempel vil vi lære at bruge WorksheetFunction med COUNTIF til at tælle data med VBA i Excel.
Trin:
- Tryk på Alt + F11 på dit tastatur eller gå til fanen Udvikler -> Visual Basic for at åbne Visual Basic-editor .
- I pop-up kodevinduet skal du på menulinjen klikke på Indsæt -> Modul .
- Kopier følgende kode, og indsæt den i kodevinduet.
Sub ExCOUNTIF() Range("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") End Sub
Din kode er nu klar til at køre.
- Tryk på F5 på dit tastatur eller på menulinjen vælge Kør -> Kør Sub/UserForm Du kan også bare klikke på lille Play-ikon i undermenulinjen for at køre makroen.
Vi ønskede at finde ud af, hvor mange tal i vores datasæt der er mindre end 3. Så efter at have kørt koden fik vi resultatet 4, som er antallet af tal, der er mindre end 3 i vores datasæt.
Læs mere: Sådan bruger du COUNTIF mellem to tal (4 metoder)
2. COUNTIF-funktion til at tælle en bestemt tekst i Excel
Hvis du ønsker at tælle en bestemt tekst, f.eks. hvor mange byer, navne eller fødevarer osv. der er i et Excel-ark, kan du bruge COUNTIF funktion i VBA .
Fra ovenstående eksempel lærer vi, hvordan man bruger COUNTIF til at tælle, hvor mange gange navnet John forekommer i vores datasæt med VBA makro.
Trin:
- På samme måde som før, åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
- Kopier følgende kode i kodevinduet, og indsæt den.
Sub CountifText() 'input countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'output Range("E7") = countName End Sub
Din kode er nu klar til at køre.
- Kør makroen, og du får det samlede antal.
Hvis du ikke ønsker at skrive teksten direkte i din kode, kan du gemme den i en variabel først og senere sende variablen ind i koden. Ligesom i nedenstående kode,
Sub CountifText() 'input Name = Range("E6") countName = WorksheetFunction.CountIf(Range("B5:B10"), Name) 'output Range("E7") = countName End Sub
Læs mere: Tæl tekst i starten med COUNTIF & LEFT-funktioner i Excel
3. COUNTIF-funktion til beregning af tal med VBA
Du kan bruge den COUNTIF funktion til at udtrække visse resultater.
Fra ovenstående eksempel lærer vi, hvordan man bruger COUNTIF at tælle, hvor mange tal der er i vores datasæt, som er større end 1,1 med VBA makro.
Trin:
- På samme måde som før, åbne Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
- Kopier følgende kode i kodevinduet, og indsæt den.
Sub CountifNumber() 'input countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'output Range("E7") = countNum End Sub
Din kode er nu klar til at køre.
- Kør makroen, og du får det samlede antal.
Hvis du ikke ønsker at skrive tallet direkte i din kode, kan du som tidligere nævnt gemme det i en variabel først og senere sende variablen ind i koden. Ligesom i nedenstående kode,
Sub CountifNumber() 'input Num = Range("E6") countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">" & Num) 'output Range("E7") = countNum End Sub
Læs mere: Excel COUNTIF med kriterierne større end og mindre end
Lignende læsninger
- Excel COUNTIF-funktion til at tælle celler, der er større end 0
- Sådan bruges IF- og COUNTIF-funktioner sammen i Excel
- Excel COUNTIF til at tælle celle, der indeholder tekst fra en anden celle
- Sådan bruges COUNTIF-funktionen til at beregne procentdel i Excel
4. COUNTIF-funktion med et interval af objekter i Excel
Du kan tildele en gruppe af celler til Område Objekt og derefter bruge denne Område Objekt til at tælle værdier i Excel.
Trin:
- Åbn Visual Basic-editor fra den Udvikler og Indsæt a Modul i kodevinduet.
- Kopier følgende kode i kodevinduet, og indsæt den.
Sub ExCountIFRange() Dim iRng As Range 'tildeler intervallet af celler Set iRng = Range("B5:B10") 'bruger intervallet i formlen Range("B13") = WorksheetFunction.SumIf(iRng, ">1") 'frigiver intervalobjektet Set iRng = Nothing End Sub
Din kode er nu klar til at køre.
- Kør koden, og du vil få den samlede optælling med en summationsværdi.
Læs mere: Sådan bruges COUNTIF til ikke sammenhængende område i Excel
5. COUNTIF-formelmetode i Excel
Du kan også bruge Formel og/eller FormelR1C1 metode til at anvende en COUNTIF til en celle i VBA Disse metoder er mere fleksible i forbindelse med sådanne operationer.
5.1. Formelmetode
Formlen metoden gør det muligt at angive en række celler som B5:B10 vist nedenfor i eksemplet.
Trin:
- I kodevinduet i Visual Basic-editor , kopier følgende kode og indsæt den.
Option Explicit Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10, "">1"")" End Sub
Din kode er nu klar til at køre.
Dette stykke kode giver dig den samlede optælling af de data, du har brug for.
5.2. FormelR1C1-metoden
FormlenR1C1 metoden er mere fleksibel, da den ikke begrænser sig til et bestemt område af celler.
Med det samme datasæt skal vi nu lære at bruge FormelR1C1 til at tælle værdier i VBA .
Trin:
- I kodevinduet i Visual Basic-editor , kopier følgende kode og indsæt den.
Option Explicit Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "= "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub
Din kode er nu klar til at køre.
Denne kode vil også give dig den samlede optælling af de data, du har brug for.
Hvis du ikke ønsker at indstille outputområdet, kan du gøre denne kode endnu mere fleksibel ved at skrive sådan her,
Option Explicit Sub ExCountIfFormulaRC() ActiveCell.FormulaR1C1 = "= "=COUNTIF(R[-8]C:R[-1]C,"">2"")" End Sub
Formlen tæller de celler, der opfylder betingelsen, og placerer svaret i feltet ActiveCell i dit regneark. Intervallet inden for COUNTIF funktion skal refereres ved hjælp af Række (R) og Kolonne (C) syntaks.
Læs mere: Sådan anvendes COUNTIF mellem to celleværdier i Excel
6. Tildeling af resultatet af COUNTIF-funktionen til en variabel
Hvis du vil bruge resultatet af din formel et andet sted end i dit Excel-datasæt, kan du tildele resultatet til en variabel og bruge det senere i din kode.
VBA kode til dette er,
Sub AssignCountIfVariable() Dim iResult As Double 'Tildel variablen iResult = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") 'Vis resultatet MsgBox "The count of cells with value less than 3 is " & iResult End Sub
Resultatet vises i Excel-meddelelsesfeltet.
Læs mere: COUNTIF Excel Eksempel (22 Eksempler)
Konklusion
Denne artikel viste dig, hvordan du bruger COUNTIF funktion i Excel med VBA Jeg håber, at denne artikel har været til stor gavn for dig. Du er velkommen til at spørge, hvis du har spørgsmål til emnet.