Encontrar posiciones de caracteres formateados en una celda (Microsoft Excel)
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.