Funzione VBA COUNTIF in Excel (6 esempi)

  • Condividi Questo
Hugh West

Il COUNTIF in Excel viene utilizzata per contare il numero di celle all'interno di un intervallo che soddisfano una determinata condizione. In questo articolo vi mostreremo come utilizzare la funzione COUNTIF in Excel con VBA macro.

Scarica il libro di lavoro

Potete scaricare la cartella di lavoro Excel gratuita da qui.

Funzione COUNTIF con VBA.xlsm

Funzione COUNTIF in Excel

  • Sintassi

WorksheetFunction.CountIf( Arg1 Come gamma, Arg2 ) come doppio

  • Parametri
Parametro Richiesto/ Facoltativo Tipo di dati Descrizione
Arg1 Richiesto Gamma

L'intervallo di celle dal conteggio delle celle.

Arg2 Richiesto Variante Un numero, un'espressione, un riferimento di cella o un testo che definisce le celle da contare. Ad esempio, l'espressione può essere 20, "20", ">20", "frutta" o B2.
  • Tipo di ritorno

Valore come Double

6 esempi di utilizzo della funzione COUNTIF in Excel con VBA

In questa sezione, si apprenderà come utilizzare l'opzione COUNTIF in Excel per contare testi, numeri ecc. con VBA codice.

1. WorksheetFunction con COUNTIF in Excel VBA

Excel Foglio di lavoroFunzione può essere utilizzato per richiamare la maggior parte delle altre funzioni di Excel disponibili all'interno di la funzione Inserisci in Excel e la finestra di dialogo COUNTIF è una di queste funzioni.

Con l'esempio precedente, impareremo a utilizzare l'opzione Foglio di lavoroFunzione con COUNTIF per contare i dati con VBA in Excel.

Passi:

  • Stampa Alt + F11 sulla tastiera o andare alla scheda Sviluppatore -> Visual Basic per aprire Editor Visual Basic .

  • Nella finestra del codice a comparsa, dalla barra dei menu, fare clic su Inserire -> Modulo .

  • Copiare il codice seguente e incollarlo nella finestra del codice.
 Sub ExCOUNTIF() Range("B13") = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") End Sub 

Il codice è ora pronto per essere eseguito.

  • Stampa F5 sulla tastiera o dalla barra dei menu selezionare Esegui -> Esegui Sub/UserForm Si può anche fare clic sul pulsante piccola icona Play nella barra dei sottomenu per eseguire la macro.

Volevamo scoprire quanti numeri ci sono nel nostro set di dati che sono meno di 3. Quindi, dopo aver eseguito il codice, abbiamo ottenuto il risultato di 4 che è il conteggio dei numeri che sono meno di 3 per il nostro set di dati.

Per saperne di più: Come utilizzare il COUNTIF tra due numeri (4 metodi)

2. Funzione COUNTIF per contare un testo specifico in Excel

Se si desidera contare un testo specifico, come ad esempio quante città, nomi o cibi ecc. sono presenti in un foglio Excel, è possibile utilizzare la funzione COUNTIF funzione in VBA .

Dall'esempio precedente, impareremo a utilizzare l'opzione COUNTIF per contare quante volte il nome Giovanni si verifica nel nostro set di dati con VBA macro.

Passi:

  • Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Sub CountifText() 'input countName = WorksheetFunction.CountIf(Range("B5:B10"), "John") 'output Range("E7") = countName End Sub 

Il codice è ora pronto per essere eseguito.

  • Correre la macro e si otterrà il conteggio totale.

Se non si vuole scrivere il testo direttamente nel codice, è possibile memorizzarlo prima in una variabile e poi passare la variabile all'interno del codice, come nel caso del codice seguente,

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

Per saperne di più: Conteggio del testo all'inizio con le funzioni COUNTIF & LEFT in Excel

3. Funzione COUNTIF per calcolare numeri con VBA

È possibile utilizzare il COUNTIF per estrarre determinati risultati.

Dall'esempio precedente, impareremo a utilizzare l'opzione COUNTIF per contare quanti numeri ci sono nel nostro set di dati che sono maggiore di 1,1 con VBA macro.

Passi:

  • Allo stesso modo di prima, aprire Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Sub CountifNumber() 'input countNum = WorksheetFunction.CountIf(Range("B5:B10"), ">1.1") 'output Range("E7") = countNum End Sub 

Il codice è ora pronto per essere eseguito.

  • Correre la macro e si otterrà il conteggio totale.

Come già detto, se non si vuole scrivere il numero direttamente nel codice, è possibile memorizzarlo prima in una variabile e poi passare la variabile all'interno del codice, come nel caso del codice seguente,

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

Per saperne di più: COUNTIF di Excel con criteri di maggiore e minore di

Letture simili

  • Funzione COUNTIF di Excel per contare le celle maggiori di 0
  • Come utilizzare insieme le funzioni IF e COUNTIF in Excel
  • Excel COUNTIF per contare la cella che contiene il testo di un'altra cella
  • Come utilizzare la funzione COUNTIF per calcolare la percentuale in Excel

4. Funzione COUNTIF con un intervallo di oggetti in Excel

È possibile assegnare un gruppo di celle all'area Oggetto della gamma e poi utilizzare questo Oggetto della gamma per contare i valori in Excel.

Passi:

  • Aperto Editor Visual Basic dal Sviluppatore e Inserire a Modulo nella finestra del codice.
  • Nella finestra del codice, copiare il codice seguente e incollarlo.
 Sub ExCountIFRange() Dim iRng As Range 'assegna l'intervallo di celle Set iRng = Range("B5:B10") 'utilizza l'intervallo nella formula Range("B13") = WorksheetFunction.SumIf(iRng, ">1") 'rilascia l'oggetto intervallo Set iRng = Nothing End Sub 

Il codice è ora pronto per essere eseguito.

  • Correre il codice e si otterrà il conteggio totale con un valore di somma.

Per saperne di più: Come usare COUNTIF per un intervallo non contiguo in Excel

5. Metodo della formula COUNTIF in Excel

È inoltre possibile utilizzare il comando Formula e/o FormulaR1C1 per applicare un metodo COUNTIF a una cella in VBA Questi metodi sono più flessibili nell'esecuzione di tali operazioni.

5.1. Metodo della formula

La formula consente di specificare l'intervallo di celle come B5:B10 mostrato di seguito nell'esempio.

Passi:

  • Nella finestra del codice del programma Editor Visual Basic copiare il codice seguente e incollarlo.
 Opzione esplicita Sub ExCountIfFormula() Range("B13").Formula = "=COUNTIF(B5:B10, "">1"")" Fine Sub 

Il codice è ora pronto per essere eseguito.

Questo pezzo di codice fornisce il conteggio totale dei dati richiesti.

5.2. Metodo FormulaR1C1

La formulaR1C1 è più flessibile in quanto non si limita a un intervallo di celle prestabilito.

Con lo stesso set di dati, impareremo ora ad usare FormulaR1C1 per contare i valori in VBA .

Passi:

  • Nella finestra del codice del programma Editor Visual Basic copiare il codice seguente e incollarlo.
 Opzione esplicita Sub ExCountIfFormulaRC() Range("B13").FormulaR1C1 = "=COUNTIF(R[-8]C:R[-1]C,"">2"")" Fine Sub 

Il codice è ora pronto per essere eseguito.

Questo codice fornisce anche il conteggio totale dei dati richiesti.

Se non si desidera impostare l'intervallo di uscita, è possibile rendere questo codice ancora più flessibile scrivendo in questo modo,

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

La formula conterà le celle che soddisfano la condizione e inserirà la risposta nella cartella ActiveCell nel foglio di lavoro. L'intervallo all'interno del campo COUNTIF deve essere riferito alla funzione Fila (R) e Colonna (C) sintassi.

Per saperne di più: Come applicare il COUNTIF tra due valori di cella in Excel

6. Assegnazione del risultato della funzione COUNTIF a una variabile

Se si desidera utilizzare il risultato della formula altrove, anziché nel set di dati Excel, è possibile assegnare il risultato a una variabile e utilizzarlo successivamente nel codice.

Il VBA Il codice per questo è,

 Sub AssignCountIfVariable() Dim iResult As Double 'Assegna la variabile iResult = Application.WorksheetFunction.CountIf(Range("B5:B10"), "<3") 'Mostra il risultato MsgBox "Il conteggio delle celle con valore inferiore a 3 è " & iResult End Sub 

Il risultato verrà visualizzato nella casella di messaggio di Excel.

Per saperne di più: Esempio di Excel COUNTIF (22 esempi)

Conclusione

Questo articolo ha mostrato come utilizzare il metodo COUNTIF in Excel con VBA Spero che questo articolo vi sia stato di grande aiuto. Non esitate a chiedere se avete domande sull'argomento.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.