Gary tiene una hoja de trabajo que contiene cadenas de texto no estructuradas que necesita analizar en elementos componentes. A veces, necesita buscar tipos de texto en lugar de un carácter específico. Por ejemplo, es posible que desee encontrar la primera, la N o la última aparición de cualquier carácter en negrita (o en cursiva) en la celda.

No existe una función o herramienta intrínseca en Excel para realizar esta tarea.

La función Buscar y reemplazar normal devuelve coincidencias para el formato, pero no la posición en la que ocurren esas coincidencias. Para ser tan específico sobre lo que desea encontrar, deberá utilizar una macro. Puede recuperar la información de posicionamiento en su hoja de trabajo si implementa la macro como una función definida por el usuario.

La siguiente macro acepta un rango (destinado a ser una celda específica), un indicador de si desea negrita o cursiva (o ambas) y la aparición de ese formato.

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

Para usar la macro, use una de las siguientes fórmulas en su hoja de trabajo:

=FindNth(A1, "bold", 2)

=FindNth(A1, "italic", 3)

=FindNth(A1, "bold italic", 1)

En cada caso, el tercer parámetro especifica qué ocurrencia del formato dado desea encontrar. La función devuelve la posición del carácter de esa ocurrencia dentro de la celda. Si no existe tal ocurrencia, se devuelve 0. Si especifica varias celdas en el primer parámetro de la función, devuelve un -1. Si especifica una aparición de 0, se devuelve la posición del carácter de la última aparición del formato especificado.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13402) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.