Conteggio delle celle con i colori del testo (Microsoft Excel)
Michala ha un foglio di lavoro delle risposte al sondaggio che include testo diverso in diversi colori. Ad esempio, se la risposta al sondaggio è “Non mi piacciono i cani”, la parola “cani” può essere colorata in rosso e il resto del testo è nero. Una risposta potrebbe contenere più colori, ad esempio nella risposta “Mi piacciono i cani e i gatti”, la parola “cani” potrebbe essere in rosso e la parola “gatti” in blu. Michala ha bisogno di un modo per evidenziare un intervallo di celle e contare quante celle contengono testo di un colore specifico, come il rosso o il blu.
È meglio farlo sviluppando una funzione definita dall’utente che può fare il conteggio per te. L’esempio seguente passa attraverso un intervallo di celle e conta per qualsiasi valore di indice di colore specificato.
Function CountColorIndex(rng As Range, iColor As Integer) Dim v As Variant Dim rCell As Range Dim str As String Dim sChar As String Dim x As Integer Dim iCount As Integer iCount = 0 For Each rCell In rng v = rCell.Font.ColorIndex If IsNull(v) Then For x = 1 To Len(rCell.Value) If rCell.Characters(x, 1).Font.ColorIndex _ = iColor Then iCount = iCount + 1 Exit For End If Next ElseIf v = iColor Then iCount = iCount + 1 End If Next CountColorIndex = iCount End Function
La funzione prima esamina il colore del carattere della cella nel suo insieme. Se il colore della cella è Null, significa che il colore dei singoli caratteri è stato modificato e quindi la funzione inizia a guardare attraverso ogni carattere. Se trova il colore corrispondente, il conteggio (iCount) viene incrementato e la funzione smette di scorrere ogni carattere.
Se il colore della cella non è Null, la funzione determina se il colore del carattere della cella nel suo complesso corrisponde al colore desiderato. In caso affermativo, il conteggio viene incrementato.
Questo processo viene ripetuto per ogni cella nell’intervallo specificato e la funzione restituisce quindi il valore del conteggio. Si utilizza la funzione nel modo seguente:
=CountColorIndex(B7:D42,3)
Questa formula controlla l’intervallo B7: D42 per vedere se ci sono istanze del colore rosso. Il conteggio viene quindi restituito dalla formula.
Vale la pena ricordare che la funzione si basa sui valori dell’indice di colore.
Il valore normale predefinito per il rosso è 3 e il valore per il blu è 5, ma questi valori possono essere modificati dall’utente e possono variare in base alla versione di Excel in uso. Affinché la funzione restituisca i risultati desiderati, è necessario modificare il valore dell’indice del colore, specificato nel secondo parametro della formula, in modo che rappresenti gli indici dei colori utilizzati nella cartella di lavoro specifica.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (2901) si applica a Microsoft Excel 97, 2000, 2002 e 2003.