Conteggio delle occorrenze di stringhe nelle righe dispari (Microsoft Excel)
Jeff 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.) Nei dati. 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 formulato per farlo, senza ricorrere a una macro.
Un modo per affrontare questo problema è tramite l’uso di una colonna helper. Ad esempio, supponiamo di poter utilizzare la colonna D come colonna helper e la prima cella contenente i dati è la cella C2. (Forse la cella C1 contiene un’intestazione di colonna.) Potresti usare la seguente formula nella cella D2:
=IF(MOD(ROW(),2)=1,(LEN(C2)-LEN(SUBSTITUTE(C2,"my text","")))/LEN("my text"),"")
Tutto quello che devi fare è sostituire la stringa di ricerca (“il mio testo”) con quello che stai cercando. La funzione LEN viene utilizzata due volte, prima per trovare la lunghezza di ciò che si trova nella cella C2 e quindi per sottrarre da essa la lunghezza del testo con tutte le istanze del “mio testo” rimosse. Questo valore viene quindi diviso per la lunghezza di ciò che stai cercando, risultando in quante istanze del testo di ricerca erano nella cella. Si noti che la funzione IF garantisce che venga restituito un valore numerico solo se la riga è una riga con numero dispari.
Puoi copiare questa formula tutte le righe necessarie e quindi sommare la colonna. Il risultato è il numero di volte in cui la stringa viene visualizzata in righe dispari.
Se il layout del foglio di lavoro non ti consente di utilizzare una colonna helper, puoi fare affidamento su una formula che funziona su matrici di dati.
Eccone uno che fa il trucco:
=SUMPRODUCT((LEN(C:C)-LEN(SUBSTITUTE(C:C,"my text","")))/LEN("my text")*ISODD(ROW(C:C)))
Questa formula essenzialmente fa la stessa della formula precedente, tranne per il fatto che la funzione SUMPRODUCT esegue il calcolo internamente per ogni cella nella colonna C. Dovresti rendersi conto che poiché la formula esamina tutta la colonna C, significa che se il tuo testo di ricerca (“il mio testo “) si verifica all’interno di qualsiasi cella non di dati nella colonna (come un’intestazione di colonna), quindi verrà inclusa anche nel totale restituito.
Se decidi di utilizzare una macro, potresti facilmente creare 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:
Function CountInst(rSource As Range, sSearch As String, bCaseInsensitive As Boolean) As Integer Dim c As Range Dim iCount As Integer Dim sTemp1 As String Dim sTemp2 As String sTemp2 = sSearch If bCaseInsensitive Then sTemp2 = LCase(sTemp2) iCount = 0 For Each c In rSource If c.Row Mod 2 = 1 Then sTemp1 = c.Text If bCaseInsensitive Then sTemp1 = LCase(sTemp1) iCount = iCount + (Len(sTemp1) - _ Len(Replace(sTemp1, sTemp2, ""))) / Len(sTemp2) End If Next c CountInst = iCount End Function
Per utilizzarlo, tutto ciò che devi fare è fornire un intervallo, ciò che desideri cercare e se desideri che la corrispondenza non faccia distinzione tra maiuscole e minuscole o meno. Ad esempio, se vuoi cercare “il mio testo” senza che il caso abbia importanza, dovresti usare quanto segue:
=CountInst(C2:C99,"my text",TRUE)
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (1514) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.