Sommario
L'esercitazione mostra come contare il numero di celle con un determinato testo in Excel. Troverete esempi di formule per la corrispondenza esatta, parziale e per le celle filtrate.
La settimana scorsa abbiamo visto come contare le celle con testo in Excel, cioè tutte le celle con qualsiasi testo. Quando si analizzano grandi quantità di informazioni, si può anche voler sapere quante celle contengono un testo specifico. Questa esercitazione spiega come farlo in modo semplice.
Come contare le celle con testo specifico in Excel
Microsoft Excel dispone di una funzione speciale per il conteggio condizionato delle celle, la funzione COUNTIF. Tutto ciò che si deve fare è fornire la stringa di testo di destinazione nel campo criteri argomento.
Ecco una formula generica di Excel per contare il numero di celle contenenti un testo specifico:
COUNTIF(intervallo, " testo ")L'esempio seguente lo mostra in azione. Supponiamo di avere un elenco di ID di articoli in A2:A10 e di voler contare il numero di celle con un particolare id, ad esempio "AA-01". Digitate questa stringa nel secondo argomento e otterrete questa semplice formula:
=COUNTIF(A2:A10, "AA-01")
Per consentire agli utenti di contare le celle con un determinato testo senza dover modificare la formula, inserire il testo in una cella predefinita, ad esempio D1, e fornire il riferimento alla cella:
=COUNTIF(A2:A10, D1)
Nota. La funzione COUNTIF di Excel è senza distinzione tra maiuscole e minuscole Per trattare in modo diverso i caratteri maiuscoli e minuscoli, utilizzare questa formula sensibile alle maiuscole.
Come contare le celle con un determinato testo (corrispondenza parziale)
La formula descritta nell'esempio precedente corrisponde esattamente ai criteri. Se in una cella è presente almeno un carattere diverso, ad esempio uno spazio in più alla fine, non si tratterà di una corrispondenza esatta e tale cella non verrà conteggiata.
Per trovare il numero di celle che contengono un determinato testo, utilizzare i caratteri jolly nei criteri, in particolare l'asterisco (*) che rappresenta qualsiasi sequenza di caratteri. A seconda dell'obiettivo, una formula può essere simile a una delle seguenti.
Conta le celle che contengono un testo specifico nel punto molto inizio :
COUNTIF(intervallo, " testo *")Conta le celle che contengono un determinato testo in qualsiasi posizione :
COUNTIF(intervallo, "* testo *")Ad esempio, per trovare quante celle dell'intervallo A2:A10 iniziano con "AA", utilizzare questa formula:
=COUNTIF(A2:A10, "AA*")
Per ottenere il conteggio delle celle contenenti "AA" in qualsiasi posizione, utilizzare questa:
=COUNTIF(A2:A10, "*AA*")
Per rendere le formule più dinamiche, sostituire le stringhe codificate con riferimenti alle celle.
Per contare le celle che iniziano con un determinato testo:
=COUNTIF(A2:A10, D1& "*")
Per contare le celle in cui è presente un determinato testo:
=COUNTIF(A2:A10, "*"&D1&"*")
La schermata seguente mostra i risultati:
Conta le celle che contengono testo specifico (sensibile alle maiuscole)
Quando è necessario differenziare i caratteri maiuscoli e minuscoli, la funzione COUNTIF non funziona. A seconda che si cerchi una corrispondenza esatta o parziale, è necessario creare una formula diversa.
Formula sensibile alle maiuscole per contare le celle con testo specifico (corrispondenza esatta)
Per contare il numero di celle con un determinato testo che riconosce il caso del testo, utilizzeremo una combinazione delle funzioni SUMPRODUCT ed EXACT:
SUMPRODUCT(--EXACT(" testo ", gamma ))Come funziona questa formula:
- EXACT confronta ogni cella dell'intervallo con il testo di esempio e restituisce una matrice di valori VERO e FALSO, VERO che rappresenta le corrispondenze esatte e FALSO tutte le altre celle. Un doppio trattino (detto doppio unario ) costringe VERO e FALSO in 1 e 0.
- SUMPRODUCT somma tutti gli elementi della matrice. La somma è il numero di 1, ovvero il numero di corrispondenze.
Ad esempio, per ottenere il numero di celle in A2:A10 che contengono il testo in D1 e che gestiscono maiuscole e minuscole come caratteri diversi, utilizzate questa formula:
=SUMPRODOTTO(--ESATTO(D1, A2:A10))
Formula sensibile alle maiuscole per contare le celle con testo specifico (corrispondenza parziale)
Per costruire una formula sensibile alle maiuscole e alle minuscole in grado di trovare una stringa di testo di interesse in qualsiasi punto di una cella, utilizziamo 3 funzioni diverse:
SUMPRODUCT(--(ISNUMBER(FIND(" testo ", gamma ))))Come funziona questa formula:
- La funzione FIND, sensibile alle maiuscole e minuscole, cerca il testo di destinazione in ogni cella dell'intervallo. Se ha successo, la funzione restituisce la posizione del primo carattere, altrimenti l'errore #VALORE! Per chiarezza, non è necessario conoscere la posizione esatta, qualsiasi numero (al contrario dell'errore) significa che la cella contiene il testo di destinazione.
- La funzione ISNUMBER gestisce l'array di numeri ed errori restituiti da FIND e converte i numeri in TRUE e tutto il resto in FALSE. Un doppio unario (--) costringe i valori logici in uno e zero.
- SUMPRODUCT somma la matrice di 1 e 0 e restituisce il numero di celle che contengono il testo specificato.
Per testare la formula su dati reali, vediamo quante celle in A2:A10 contengono la sottostringa inserita in D1:
=SUMPRODOTTO(--(ISNUMBER(FIND(D1, A2:A10))))
Il risultato è 3 (celle A2, A3 e A6):
Come contare le celle filtrate con testo specifico
Per contare elementi visibili in un elenco filtrato, sarà necessario utilizzare una combinazione di 4 o più funzioni, a seconda che si desideri una corrispondenza esatta o parziale. Per rendere gli esempi più facili da seguire, diamo prima una rapida occhiata ai dati di partenza.
Supponendo di avere una tabella con ID ordine nella colonna B e Quantità nella colonna C, come mostrato nell'immagine sottostante. Per il momento, siete interessati solo alle quantità maggiori di 1 e avete filtrato la tabella di conseguenza. La domanda è: come si contano le celle filtrate con un particolare id?
Formula per contare le celle filtrate con testo specifico (corrispondenza esatta)
Per contare le celle filtrate il cui contenuto corrisponde esattamente alla stringa di testo di esempio, utilizzare una delle seguenti formule:
=SUMPRODUCT(SUBTOTALE(103, INDIRETTO("A"&ROW(A2:A10))), --(B2:B10=F1))
=SUMPRODOTTO(SUBTOTALE(103, OFFSET(A2:A10, RIGA(A2:A10) - MIN(RIGA(A2:A10)),,1)), --(B2:B10=F1))
Dove F1 è il testo di esempio e B2:B10 sono le celle da contare.
Come funzionano queste formule:
Al centro di entrambe le formule, si eseguono 2 controlli:
- Identificare le righe visibili e quelle nascoste. A questo scopo, si utilizza la funzione SUBTOTALE con l'opzione funzione_num impostato a 103. Per fornire a SUBTOTAL tutti i riferimenti alle singole celle, utilizzare INDIRETTO (nella prima formula) o una combinazione di OFFSET, ROW e MIN (nella seconda formula). Poiché si tratta di individuare le righe visibili e nascoste, non è importante quale sia la colonna a cui fare riferimento (A nel nostro esempio). Il risultato di questa operazione è una matrice di 1 e 0, dove gli 1 rappresentano le righe visibili.righe e zeri - righe nascoste.
- Trova le celle che contengono il testo dato. A tale scopo, confrontate il testo di esempio (F1) con l'intervallo di celle (B2:B10). Il risultato di questa operazione è una matrice di valori VERO e FALSO, che vengono forzati a 1 e 0 con l'aiuto dell'operatore doppio unario.
Infine, la funzione SUMPRODUCT moltiplica gli elementi dei due array nelle stesse posizioni e somma l'array risultante. Poiché la moltiplicazione per zero dà zero, solo le celle che hanno 1 in entrambi gli array hanno 1 nell'array finale. La somma degli 1 è il numero di celle filtrate che contengono il testo specificato.
Formula per contare le celle filtrate con testo specifico (corrispondenza parziale)
Per contare le celle filtrate che contengono un determinato testo come parte del contenuto della cella, modificate le formule precedenti nel modo seguente: invece di confrontare il testo campione con l'intervallo di celle, cercate il testo di destinazione utilizzando ISNUMBER e FIND come spiegato in uno degli esempi precedenti:
=SUMPRODUCT(SUBTOTALE(103, INDIRETTO("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))
=SUMPRODOTTO(SUBTOTALE(103, OFFSET(A2:A10, RIGA(A2:A10) - MIN(RIGA(A2:A10)),,1)), --[ISNUMBER(FIND(F1, B2:B10))))
Di conseguenza, le formule individueranno una determinata stringa di testo in qualsiasi posizione di una cella:
Nota: la funzione SUBTOTALE con 103 nella cartella funzione_num identifica tutte le celle nascoste, filtrate e nascoste manualmente. Di conseguenza, le formule di cui sopra contano soltanto cellule visibili indipendentemente dal modo in cui sono state nascoste le celle invisibili. Per escludere solo le celle filtrate ma includere quelle nascoste manualmente, usare 3 per funzione_num .
Ecco come contare il numero di celle con un determinato testo in Excel. Vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!
Download disponibili
Formule di Excel per contare le celle con un determinato testo