{count, plural, one {Corso} other {Corsi}}
Contare le celle non vuote sembra facile finché non ci provi. Scrivi una veloce COUNTA() e il numero non corrisponde a quello che vedi sullo schermo. Alcune celle sembrano vuote ma vengono conteggiate. Altre hanno dati ma vengono saltate.
In questo tutorial ti guiderò attraverso ogni metodo per contare le celle non vuote: COUNTA(), COUNTIF(), COUNTIFS(), SUBTOTAL() e SUMPRODUCT(). Ti mostrerò quando usare ciascuno, quali errori evitare e come risolvere i problemi che vedo più spesso. Alla fine saprai a quale funzione ricorrere in ogni situazione.
Contare le celle non vuote con COUNTA()
COUNTA() è la mia funzione di riferimento per contare le celle non vuote. Conta tutto ciò che non è completamente vuoto: testo, numeri, date, errori e persino formule che restituiscono stringhe vuote.
Come funziona COUNTA()
La sintassi è semplice:
=COUNTA(value1, [value2], ...)
value1 è l'intervallo che vuoi contare. Puoi aggiungere fino a 255 argomenti, ma di solito userai un solo intervallo.
Ecco un esempio da un tracker di sondaggi che ho creato il mese scorso. Ho avuto 12 rispondenti, ma alcune persone hanno saltato domande e altre hanno abbandonato a metà. Avevo bisogno di sapere quante persone mi avevano effettivamente fornito un indirizzo email.
=COUNTA(B2:B13)
Questo mi ha dato 10 perché due persone (Ahmed Hassan e Mohamed Ali) hanno lasciato il campo email vuoto.
Posso anche contare lungo una riga per vedere quanto è completa la risposta di ciascuno:
=COUNTA(B2:F2)
Per Sara Ibrahim, questo restituisce 5 perché ha compilato tutti i campi. Per Nour Mahmoud, =COUNTA(B6:F6) restituisce solo 1 dato che ha fornito solo l'email e ha abbandonato il resto.
Quando basta COUNTA()
Usa COUNTA() quando ti serve un conteggio semplice e i tuoi dati sono puliti. Se ogni cella vuota nell'intervallo è davvero vuota (mai toccata, senza formule), COUNTA() funziona perfettamente.
Le cose si complicano quando le formule restituiscono "" (stringhe vuote). Spiegherò questo caso limite in dettaglio più avanti nella sezione "Come Excel tratta celle vuote vs. celle vuote da formula".
Contare le celle non vuote con COUNTIF()
COUNTIF() ti offre un altro modo per contare le celle non vuote. Invece di contare tutto ciò che esiste, conta le celle che soddisfano una condizione. E quella condizione può essere "non vuota".
Il criterio "<>"
Ecco come appare la formula:
=COUNTIF(B2:B13,"<>")
La parte "<>" significa "diverso da niente", che è solo un altro modo per dire "non vuota". Per la stessa colonna delle email di prima, questo mi dà 10, lo stesso di COUNTA().
Perché non usare COUNTIF(range,"*")?
Lo vedo in tutorial più vecchi, ed è un errore. Il carattere jolly "*" conta solo il testo. Ignora completamente numeri, date e valori VERO/FALSO. Se la tua colonna ha tipi di dato misti, otterrai un conteggio sbagliato.
Rimani su "<>". Funziona a prescindere dal tipo di dati.
Quando COUNTIF() è meglio di COUNTA()
Il vero vantaggio di COUNTIF() è che porta naturalmente a COUNTIFS(). Quando devi contare celle non vuote che soddisfano anche altre condizioni (come un reparto specifico o un intervallo di date), COUNTIFS() è lì pronta. Se pensi che potresti aggiungere condizioni in seguito, parti da COUNTIF() così il passaggio è facile.
Per la maggior parte dei dati, COUNTA() e COUNTIF(range,"<>") danno risultati identici. Entrambe contano le stesse cose, inclusi errori e vuoti generati da formule. La differenza principale è la flessibilità. COUNTIF() è il tuo ponte verso il conteggio multi-criterio con COUNTIFS().
Contare celle non vuote che soddisfano condizioni
Qui COUNTIF() inizia davvero a brillare. COUNTIFS() ti permette di contare celle non vuote che soddisfano anche altre condizioni.
COUNTIFS() con logica non vuota
Mettiamo che sto tracciando la formazione dei dipendenti e voglio sapere quante persone in Sales hanno inviato un punteggio. Ecco la formula:
=COUNTIFS(B2:B11,"Sales",E2:E11,"<>")
Questo significa: "Conta le righe in cui il reparto è 'Sales' E il punteggio non è vuoto". Nel mio tracker, questo mi dà 3 perché Mona Sayed è in Sales ma non ha ancora consegnato un punteggio.
Condizioni multiple
Puoi accumulare fino a 127 coppie di criteri se necessario. Eccone una che conta i dipendenti contrassegnati come "Complete" che hanno anche un punteggio:
=COUNTIFS(C2:C11,"Complete",E2:E11,"<>")
Questo mi dà 6 perché Mona Sayed ha completato la formazione ma non ha mai inviato un punteggio.
Un altro esempio. Contare il personale di Engineering che ha date di completamento:
=COUNTIFS(B2:B11,"Engineering",D2:D11,"<>")
Questo restituisce 3 dato che la formazione di Omar Mostafa è ancora in sospeso e non ha ancora una data.
Lo schema è semplice: usa "<>" per la colonna in cui controlli i valori non vuoti e inserisci i filtri specifici nelle altre colonne.
Come Excel tratta celle "vuote" vs. "vuote da formula"
Qui avviene la maggior parte degli errori di conteggio. Excel vede diversi tipi di "vuoto" che a schermo sembrano uguali.
Celle davvero vuote
Una cella davvero vuota non è mai stata toccata o è stata cancellata completamente. ISBLANK() restituisce TRUE, COUNTA() la salta e COUNTBLANK() la conta. Questo è l'unico tipo di cella che tutte le funzioni concordano sia vuota.
Stringhe vuote generate da formula
Questa inganna spesso. Quando una formula come =IF(A1>60,"Pass","") restituisce "", la cella sembra vuota ma in realtà contiene un risultato di formula. Ecco come la vedono le varie funzioni:
COUNTA()→ La conta (non vuota)COUNTIF(range,"<>")→ La conta (non vuota)COUNTBLANK()→ La conta (vuota)ISBLANK()→ RestituisceFALSE
Vedi il problema? COUNTBLANK() dice che è vuota, ma ISBLANK() dice di no. Questo manda in confusione anche chi usa Excel da anni.
Il workaround SUMPRODUCT() + LEN()
Per contare solo le celle con contenuto effettivamente visibile (niente vuoti da formula, niente spazi), usa questo:
=SUMPRODUCT(--(LEN(B5:B10)>0))
Questo controlla quanti caratteri ha ogni cella. Se LEN() restituisce 0, la cella è vuota a prescindere. La parte -- converte VERO/FALSO in 1/0, e SUMPRODUCT()` li somma.
Per un conteggio ancora più rigoroso che ignora anche le celle con spazi:
=SUMPRODUCT(--(LEN(TRIM(B5:B10))>0))Celle con caratteri nascosti
A volte una cella sembra vuota ma contiene uno spazio (CHAR(32)) o uno spazio unificatore (CHAR(160)) da dati web o PDF. COUNTA() la conta, LEN() restituisce 1 o più e ISBLANK() dice FALSE.
Per intercettarle nel conteggio, usa la formula più rigorosa che ho mostrato prima: =SUMPRODUCT(--(LEN(TRIM(range))>0)). La parte TRIM() rimuove gli spazi normali prima del conteggio. Per gli spazi unificatori, pulisci prima i dati con =SUBSTITUTE(A1,CHAR(160),"") o usa la funzione CLEAN().
Contare celle non vuote in dati filtrati
Ecco qualcosa che coglie di sorpresa: filtri i dati, scrivi una formula COUNTA() e il risultato include ancora le righe nascoste. Questo perché COUNTA() non tiene conto dei filtri. Conta tutto nell'intervallo, che tu lo veda o no.
SUBTOTAL(): l'alternativa consapevole dei filtri
SUBTOTAL() risolve questo problema. Conta rispettando i filtri.
=SUBTOTAL(3,D2:D11)
Il 3 dice a SUBTOTAL() di fare un conteggio in stile COUNTA(). La differenza: salta le righe nascoste dai filtri.
Numeri di funzione: 3 vs. 103
SUBTOTAL() ha due modalità:
- Numero funzione 3: salta le righe nascoste dall'AutoFilter, ma conta ancora le righe nascoste manualmente.
- Numero funzione 103: salta TUTTE le righe nascoste (sia da filtro che manuali).
=SUBTOTAL(3,D2:D11) -- Skips AutoFilter rows
=SUBTOTAL(103,D2:D11) -- Skips ALL hidden rows
Nella maggior parte dei casi, 3 è quello che ti serve. Usa 103 solo se hai nascosto manualmente delle righe (tasto destro > Nascondi) e vuoi escluderle anch'esse.
AGGREGATE(): un'alternativa per dati disordinati
Se nei tuoi dati filtrati ci sono valori di errore, SUBTOTAL() genererà un errore. AGGREGATE() gestisce meglio la cosa:
=AGGREGATE(3,7,D2:D11)
Il 3 è il numero di funzione (COUNTA()), e 7 gli dice di ignorare sia le righe nascoste sia gli errori. È l'opzione più sicura per dati disordinati, ma alla maggior parte non serve.
Contare celle non vuote nelle tabelle di Excel
Se i tuoi dati sono in una Tabella Excel (vai su Inserisci > Tabella o premi Ctrl+T), puoi usare riferimenti strutturati invece degli indirizzi di cella. Questo rende le formule più chiare e si aggiornano automaticamente quando la tabella cresce.
Riferimenti strutturati con COUNTA()
Invece di scrivere =COUNTA(C2:C9), scrivi:
=COUNTA(TaskTracker[Assigned To])
Questo conta le celle non vuote nella colonna Assigned To della mia tabella TaskTracker. Il riferimento salta automaticamente la riga di intestazione e si espande quando aggiungo nuove righe.
Combinare COUNTIFS() con riferimenti strutturati
COUNTIFS() funziona alla grande con le tabelle:
=COUNTIFS(TaskTracker[Status],"Done",TaskTracker[Completion Date],"<>")
Questo conta le attività contrassegnate come "Done" che hanno una data di completamento. Nel mio tracker, questo mi dà 4 dato che tutte le attività completate hanno date.
Perché le tabelle sono migliori per il conteggio
Ci sono due motivi per cui le tabelle sono utili. Primo, i riferimenti strutturati saltano automaticamente la riga di intestazione, quindi non devi preoccuparti di partire dalla riga 2. Secondo, quando aggiungi una nuova riga alla tabella, ogni formula che usa riferimenti strutturati include i nuovi dati. Niente più aggiornamenti manuali degli intervalli.
È perfetto per dati che crescono nel tempo, come log, tracker o dati che importi regolarmente.
Problemi comuni nel conteggio delle celle non vuote
Il conteggio è più alto del previsto
Cosa succede: COUNTA() dice 6, ma vedi solo 4 celle con dati.
Perché: due celle hanno formule che restituiscono "". Come detto prima, sembrano vuote ma tecnicamente non lo sono.
Soluzione: usa =SUMPRODUCT(--(LEN(range)>0)) invece di COUNTA(). Conta solo le celle con contenuto visibile, ignorando i vuoti generati da formule.
Spazi nascosti falsano il conteggio
Cosa succede: una cella sembra vuota, ma COUNTA() la conta e ISBLANK() dice FALSE.
Perché: la cella ha spazi al suo interno, probabilmente copiando dati da un sito o da un altro file.
Soluzione: verifica con =LEN(A1). Se restituisce più di 0 quando la cella sembra vuota, ci sono caratteri nascosti. Pulisci i dati prima con =TRIM(A1), o usa la formula più rigorosa di prima: =SUMPRODUCT(--(LEN(TRIM(range))>0)).
I valori di errore vengono contati quando non li vuoi
Cosa succede: vuoi contare le celle non vuote ma errori come #DIV/0! o #N/A vengono inclusi.
Perché: sia COUNTA() sia COUNTIF(range,"<>") trattano gli errori come non vuoti.
Soluzione: se i tuoi dati hanno anche filtri, usa =AGGREGATE(3,7,range) come menzionato nella sezione sui dati filtrati. Il 7 salta sia le righe nascoste sia gli errori. Per dati non filtrati, usa =SUMPRODUCT(--(LEN(IFERROR(range,""))>0)).
Il conteggio non si aggiorna dopo il filtro
Cosa succede: Filtri i dati e COUNTA() mostra ancora il conteggio non filtrato.
Perché: COUNTA() ignora completamente i filtri.
Soluzione: usa =SUBTOTAL(3,range) come visto nella sezione sui dati filtrati. Si adatta automaticamente in base a ciò che è visibile.
Best practice per contare le celle non vuote
Dopo aver affrontato questi problemi più volte del dovuto, ecco cosa faccio ora:
-
Inizia con
COUNTA()per dataset puliti e semplici. È veloce e lineare. -
Usa
COUNTIF(range,"<>")se potresti aggiungere condizioni più avanti. Si collega naturalmente aCOUNTIFS()per il conteggio multi-criterio. -
Testa i vuoti da formula prima di fidarti del conteggio. Controlla a campione alcune celle "vuote" con
=LEN(cell). Se ottieni qualcosa diverso da 0, passa all'approccioSUMPRODUCT()+LEN(). -
Usa
SUBTOTAL(3,range)per dati filtrati. È l'unica funzione di conteggio che rispetta i filtri. -
Pulisci prima i dati importati. Esegui
TRIM()e verificaCHAR(160)sui dati provenienti dal web o altre fonti. -
Usa le tabelle di Excel per dataset in crescita. I riferimenti strutturati si aggiornano automaticamente quando aggiungi righe.
-
Documenta le formule complesse. Se usi
SUMPRODUCT(--(LEN(TRIM(range))>0)), aggiungi un commento che spieghi il perché. Il te del futuro ti ringrazierà.
Conclusione
Excel ti offre diversi modi per contare le celle non vuote, e quello giusto dipende dalla situazione. COUNTA() funziona nella maggior parte dei casi. COUNTIF() e COUNTIFS() ti permettono di aggiungere condizioni. SUBTOTAL() rispetta i filtri. E SUMPRODUCT() con LEN() è il tuo paracadute quando le formule creano vuoti invisibili.
Il trucco non è memorizzare le formule. È capire cosa Excel intende per "vuota". Una formula che restituisce "" sembra vuota ma non lo è. Un carattere spazio è invisibile ma viene conteggiato. Una volta capite queste differenze, non rimarrai più sorpreso da conteggi sbagliati.
Se vuoi continuare a sviluppare le tue competenze in Excel, dai un'occhiata al nostro corso Data Analysis in Excel . Copre formule, tabelle pivot e pulizia dei dati che si integrano bene con tutto ciò che abbiamo visto qui.
Sono un data engineer e community builder: lavoro su pipeline dati, cloud e strumenti di AI, e scrivo tutorial pratici e ad alto impatto per DataCamp e per sviluppatori alle prime armi.
FAQ
Qual è il modo più veloce per contare le celle non vuote in Excel?
Seleziona l'intervallo e guarda la barra di stato in basso in Excel. Mostra "Conteggio" automaticamente senza alcuna formula. È ottimo per un controllo rapido. Se ti serve il conteggio in una cella per i calcoli, usa =COUNTA(range).
Perché COUNTA() conta celle che sembrano vuote?
Probabilmente quelle celle hanno formule che restituiscono "" o spazi nascosti da copia-incolla. Usa =LEN(A1) per verificare. Se restituisce più di 0, la cella non è davvero vuota. La soluzione è =SUMPRODUCT(--(LEN(range)>0)) che conta solo le celle con contenuto visibile.
Cosa succede se uso COUNTA() su dati filtrati?
COUNTA() ignora i filtri e conta tutto, incluse le righe nascoste. Usa =SUBTOTAL(3,range) invece. Salta automaticamente le righe filtrate. È particolarmente utile nei report in cui gli utenti applicano i propri filtri.
COUNTIF() può contare le celle non vuote più velocemente di COUNTA()?
COUNTA() è più semplice per conteggi base di non vuote. Usa COUNTIF(range,"<>") quando ti serve logica basata su condizioni o quando prevedi di estendere la formula più avanti con COUNTIFS(). La differenza in prestazioni è trascurabile per i dataset tipici.
Come escludo i vuoti generati da formule dal conteggio?
Usa =SUMPRODUCT(--(LEN(TRIM(range))>0)). Questo conta solo le celle con caratteri effettivamente visibili. La parte TRIM() rimuove anche eventuali spazi nascosti, rendendolo un metodo molto robusto per dati disordinati che contengono vuoti da formula e spazi extra.



