Trovare posizioni di caratteri formattati in una cella (Microsoft Excel)
Gary ha un foglio di lavoro che contiene stringhe di testo non strutturate che deve analizzare negli elementi componenti. A volte ha bisogno di cercare tipi di testo piuttosto che un carattere specifico. Ad esempio, potrebbe voler trovare la prima, l’ennesima o l’ultima occorrenza di qualsiasi carattere in grassetto (o in corsivo) nella cella.
Non esistono funzioni o strumenti intrinseci in Excel per eseguire questa operazione.
La normale funzione Trova e sostituisci restituisce le corrispondenze per la formattazione, ma non la posizione in cui si verificano tali corrispondenze. Per ottenere informazioni specifiche su ciò che desideri trovare, dovrai utilizzare una macro. È possibile ripristinare le informazioni sul posizionamento nel foglio di lavoro se si implementa la macro come funzione definita dall’utente.
La seguente macro accetta un intervallo (destinato a essere una cella specifica), un indicatore se si desidera il grassetto o il corsivo (o entrambi) e l’occorrenza di quella formattazione.
Function FindNth(r As Range, sType As String, N As Integer) As Integer Dim J As Integer Dim iCount As Integer Dim sStyle As String If r.Count = 1 Then FindNth = 0 iCount = 0 For J = 1 To Len(r.Text) sStyle = r.Characters(J, 1).Font.FontStyle If LCase(sStyle) = LCase(sType) Then iCount = iCount + 1 If N = 0 Then FindNth = J Else If N = iCount Then FindNth = J Exit For End If End If End If Next J Else FindNth = -1 End If End Function
Per utilizzare la macro, utilizza una delle seguenti formule nel tuo foglio di lavoro:
=FindNth(A1, "bold", 2) =FindNth(A1, "italic", 3) =FindNth(A1, "bold italic", 1)
In ogni caso, il terzo parametro specifica quale occorrenza della formattazione data si desidera trovare. La funzione restituisce la posizione del carattere di tale occorrenza all’interno della cella. Se non si verifica tale occorrenza, viene restituito 0. Se specifichi più celle nel primo parametro della funzione, restituisce -1. Se si specifica un’occorrenza di 0, viene restituita la posizione del carattere dell’ultima occorrenza del formato specificato.
_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 (13402) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.