Matteo ha un foglio di lavoro con un bel po’ di testo, nella colonna C. Vorrebbe contare le occorrenze di una stringa specifica all’interno della colonna C, ma solo per le righe dispari (1, 3, 5, ecc.). La stringa che sta cercando potrebbe non essere l’intero contenuto della cella e potrebbe verificarsi più volte all’interno di una determinata cella (se si verifica 2 o 3 volte in una cella, dovrebbe contare come 2 o 3 occorrenze). Si chiede se esista un modo per farlo con delle formule, senza ricorrere a una macro.
Un modo per avvicinarsi a questo è attraverso l’uso di una colonna di supporto. Ad esempio, supponiamo che tu possa utilizzare la colonna D come colonna di supporto e che la prima cella contenente i dati sia la cella C2 (forse la cella C1 contiene un’intestazione di colonna). È possibile utilizzare la seguente formula nella cella D2:
=SE(RESTO(RIF.RIGA();2)=1;(LUNGHEZZA(C2)-LUNGHEZZA(SOSTITUISCI(C2;"mio testo";"")))/LUNGHEZZA("mio testo");"")
Tutto quello che dovresti fare è sostituire la stringa di ricerca (“mio testo”) con quello che stai cercando. La funzione LUNGHEZZA viene utilizzata due volte, prima per trovare la lunghezza di qualsiasi cosa sia nella cella C2 e quindi per sottrarre da essa la lunghezza del testo con tutte le istanze di “mio testo” rimosse. Questo valore viene quindi diviso per la lunghezza di ciò che stai cercando, ottenendo come risultato il numero di istanze del testo di ricerca erano nella cella. Si noti che la funzione SE garantisce che venga restituito un valore numerico solo se la riga è una riga dispari.
Puoi copiare questa formula su tutte le righe necessarie, quindi sommare la colonna. Il risultato è il numero di volte in cui la stringa appare nelle righe dispari.
Se il layout del tuo foglio di lavoro non ti consente di utilizzare una colonna di supporto, puoi fare affidamento su una formula che funziona su matrici di dati. Eccone una che funzionerà:
=MATR.SOMMA.PRODOTTO((LUNGHEZZA(C:C)-LUNGHEZZA(SOSTITUISCI(C:C;"mio testo";"")))/LUNGHEZZA("mio testo")*VAL.DISPARI(RIF.RIGA(C:C)))
Questa formula essenzialmente fa lo stesso della formula precedente, tranne per il fatto che la funzione MATR.SOMMA.PRODOTTO esegue il calcolo internamente per ogni cella nella colonna C. Dovresti renderti conto che poiché la formula esamina tutta la colonna C, ciò significa che se il tuo testo di ricerca (“mio testo”) si verificasse anche all’interno di tutte le celle non di dati nella colonna (ad esempio un’intestazione di colonna), tale occorrenza verrebbe inclusa anche nel totale restituito.
Se si decide di utilizzare una macro, è possibile creare facilmente una funzione definita dall’utente che esamina un intervallo di celle e determina il conteggio. Quello che segue è un esempio del tipo di macro che potresti usare:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Per usarla, tutto ciò che devi fare è fornire un intervallo, cosa vuoi cercare e se vuoi che la corrispondenza non faccia distinzione tra maiuscole e minuscole o meno. Ad esempio, se desideri cercare “mio testo” e le maiuscole non hanno importanza, dovresti utilizzare quanto segue:
=ContaIstanze(C2:C99;"mio testo";VERO)