¿Cómo encontrar la primera, la última o una aparición específica de un carácter en Excel?
En muchas tareas de procesamiento de datos, es probable que trabaje con listas de cadenas de texto que incluyan caracteres especiales —como el guion “-”— y necesite identificar la posición de su primera, última o una aparición específica (enésima). Por ejemplo, al extraer información basada en delimitadores, analizar códigos de piezas o separar componentes de datos, suele ser esencial determinar con precisión dónde aparece un carácter determinado dentro de cada cadena. Sin embargo, Excel no dispone de una función integrada directa para devolver la posición de la primera, última o enésima aparición de un carácter en una celda. Este artículo presenta diversas técnicas prácticas y soluciones paso a paso para localizar con exactitud estas apariciones, adaptándose a múltiples necesidades de análisis y preparación de datos.

Buscar la última aparición de un carácter con fórmulas
Buscar la última aparición de un carácter con una función definida por el usuario
Buscar la primera o Aparición aparición de un carácter con fórmula
Buscar la primera o Aparición aparición de un carácter específico con una función sencilla
Solución alternativa con fórmula para versiones recientes de Excel
Buscar la última aparición de un carácter con fórmulas
Si desea obtener la posición de la última aparición de un carácter específico (por ejemplo, «-») en una cadena de texto, las funciones estándar de Excel no lo permiten de forma directa. No obstante, al combinar algunas fórmulas puede resolver este reto de manera eficiente. A continuación, se presentan dos enfoques basados en fórmulas, ideales para trabajar con códigos de producto, rutas de archivo u otros datos que siguen un patrón consistente de separadores. Tenga en cuenta que las fórmulas complejas pueden aumentar la carga de cálculo en conjuntos de datos grandes.
1. En una celda vacía (por ejemplo, C2), introduce o copia una de las siguientes fórmulas:
=SEARCH("^^",SUBSTITUTE(A2,"-","^^",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))) =LOOKUP(2,1/(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)="-"),ROW(INDIRECT("1:"&LEN(A2)))) Ambas fórmulas están diseñadas para devolver la posición (como número) de la última aparición del carácter “-” en la celda referenciada (A2). La primera fórmula utiliza BUSCAR y SUSTITUIR para identificar la posición sustituyendo el último “-” por un símbolo único y buscándolo. La segunda emplea BUSCARV en combinación con EXTRAE y FILA para encontrar el último “-”. Puede elegir cualquiera de los dos métodos según su familiaridad o el volumen de datos. El enfoque con BUSCARV puede resultar más fácil de adaptar en versiones modernas de Excel compatibles con matrices.

2. Tras introducir la fórmula, pulse Intro. Para aplicarla a filas adicionales, arrastre el controlador de relleno hacia abajo hasta cubrir todo el rango necesario. Así, cada celda se rellenará inmediatamente con la posición de la última aparición correspondiente a su cadena de texto, tal como se muestra en la imagen siguiente. Asegúrese siempre de que las celdas referenciadas sean correctas al copiar la fórmula a otra zona.

Nota: En estos ejemplos, A2 hace referencia a la celda que contiene sus datos y «-» es el carácter objetivo. Puede sustituir «-» por cualquier otro carácter que necesite buscar. Si la celda está vacía o el carácter no aparece en el texto, la fórmula podría devolver un error. En entradas de texto con delimitadores repetitivos o símbolos especiales, revise cuidadosamente la presencia de caracteres ocultos o no imprimibles que puedan afectar a los resultados.
Buscar la última aparición de un carácter con una función definida por el usuario
Otro método flexible consiste en utilizar una función definida por el usuario (UDF) en un módulo VBA, lo que le brinda un mayor control y facilita su reutilización, especialmente si necesita encontrar con frecuencia la última aparición de cualquier carácter en distintos análisis. Este enfoque es ideal si busca una fórmula clara y directa ()=ultimaposicioncaracter(celda, caracter)) que funcione como las funciones integradas de Excel. No obstante, recuerde que debe tener habilitadas las macros para que las soluciones VBA funcionen, y siempre guarde su libro como archivo habilitado para macros (*.xlsm) para conservar la UDF.
1. Abra la hoja de cálculo en la que quiera añadir esta función.
2. Pulse simultáneamente las teclas ALT + F11 para abrir el editor de Microsoft Visual Basic para Aplicaciones.
3. En el editor de VBA, haga clic en Insertar > Módulo para crear un nuevo módulo. A continuación, copie y pegue el siguiente código en la ventana del módulo.
Código VBA: buscar la última aparición de un carácter
Function LastpositionOfChar(strVal As String, strChar As String) As Long
LastpositionOfChar = InStrRev(strVal, strChar)
End Function
Resolución de problemas: Si la función no devuelve ningún resultado, asegúrese de que las macros están habilitadas y de que introduce la referencia de celda y el carácter correctos en la fórmula. Si necesita encontrar la última aparición de un carácter diferente, basta con modificar el argumento correspondiente.
4. Guarde y cierre la ventana de código. Vuelva a su hoja de cálculo e introduzca la siguiente fórmula en una celda vacía (por ejemplo, B2):=lastpositionofchar(A2,"-"). Sustituya A2 por la celda adecuada y “-” por el carácter objetivo según sea necesario.

5. Arrastre el controlador de relleno hacia abajo para aplicar la fórmula a las celdas adicionales que necesite. Así obtendrá la última posición del carácter especificado en cada cadena de texto, tal como se muestra a continuación.

Nota: El primer argumento ()A2) es la celda de origen que contiene la cadena de texto, y el segundo (“-”) es el carácter objetivo. Puede ajustar estos parámetros según sus necesidades. Si no se encuentra ninguna coincidencia, la función podría devolver 0. Guarde siempre su trabajo antes de ejecutar o editar código VBA. En caso de error, verifique si hay comillas mal colocadas o celdas referenciadas incorrectamente.
Buscar la primera o Aparición aparición de un carácter con fórmula
Si su tarea consiste en encontrar no solo la última, sino también la primera, segunda o cualquier otra aparición de un carácter en una cadena de texto, puede utilizar una estructura de fórmula diferente. Esto suele ser necesario al analizar códigos jerárquicos, extraer partes de identificadores estructurados o identificar símbolos repetidos en entradas de datos.
1. Para obtener la posición enésima de un carácter especificado, introduce o pega la siguiente fórmula en una celda vacía (por ejemplo, C2):
=FIND(CHAR(160),SUBSTITUTE(A2,"-",CHAR(160),2)) En esta fórmula, A2 es la celda que se busca, “-” es el carácter que desea encontrar y 2 indica qué aparición del carácter quiere localizar (por ejemplo, 2 para la segunda aparición). ¡Adapte el número de aparición según sus necesidades de datos!

2. Pulse Intro. Para aplicar la fórmula a más filas, arrastre el controlador de relleno hacia abajo hasta el rango deseado. Así obtendrá la posición, por ejemplo, de la segunda aparición del carácter «-» en cada cadena de texto. Si el número de ocurrencia especificado supera el recuento total de ese carácter en la cadena, la fórmula devolverá un error. En ese caso, revise sus datos de texto o el parámetro de ocurrencia.

Nota: El número 2 en la fórmula indica la instancia de ocurrencia que deseas buscar. Ajusta este número para localizar la posición de la primera, tercera, cuarta u otra aparición del carácter especificado. Si el carácter no aparece tantas veces como se ha indicado, se mostrará un error #¡VALOR!; puedes capturar este error con SI.ERROR() para obtener resultados más limpios.
Encuentre la primera o Aparición aparición de un carácter específico con una función sencilla
Para los usuarios que prefieren una solución directa e interactiva o que no se sienten cómodos creando fórmulas complejas o código VBA, Kutools para Excel ofrece una herramienta práctica llamada Encontrar la posición de la N-ésima aparición de un carácter en una cadena. Esta utilidad simplifica enormemente la extracción de la posición de la primera, segunda, tercera o cualquier otra aparición de un carácter específico en una celda, completando la tarea con solo unos pocos clics: una ventaja que acelera los procesos repetitivos de limpieza de datos, especialmente al trabajar con grandes conjuntos de datos.
Tras instalar Kutools para Excel, siga estos pasos para obtener resultados rápidos:
Supongamos que desea obtener la posición de la segunda aparición del carácter guion «-» en un conjunto de cadenas de texto:
1. Haga clic en la celda donde quiera que aparezca el resultado.
2. Haga clic en Kutools > Asistente de fórmulas > Asistente de fórmulas en la Cinta de opciones, tal como se muestra a continuación:

3. En el cuadro de diálogo Asistente de fórmulas:
- Seleccione Búsqueda en la lista desplegable Tipo de fórmula.
- Elija Encontrar la posición de la N-ésima aparición de un carácter en una cadena en la lista de Selecciona una fórmula.
- En el área de Entrada de argumento, seleccione la celda que contiene su texto, introduzca el carácter que desea buscar y especifique la aparición que quiere localizar.

4. Haga clic en Aceptar. Tras obtener el resultado con la fórmula, puede arrastrar el controlador de relleno hacia abajo para aplicarla a otras filas según sea necesario. Este método le ayuda a evitar el riesgo de errores derivados de la introducción manual de fórmulas.

¡Descargue y pruebe gratis Kutools para Excel ahora!
Esta opción es ideal para usuarios no técnicos o para quienes deben repetir el proceso con frecuencia en distintas hojas de cálculo, ya que reduce errores manuales y ahorra tiempo al elaborar fórmulas complejas.
Fórmula alternativa para versiones recientes de Excel (con matrices dinámicas)
En versiones más recientes de Excel (Excel 365, Excel 2021 y posteriores) que admiten matrices dinámicas, puedes aprovechar funciones como SECUENCIA y FILTRAR para obtener todas las posiciones de un carácter de una sola vez. Esto facilita identificar la aparición deseada e incluso listar todas las ocurrencias en un rango independiente para su posterior procesamiento.
1. Introduzca la siguiente fórmula en una celda vacía (por ejemplo, B2) para obtener todas las posiciones del carácter «-» en la celda A2:
=FILTER(SEQUENCE(LEN(A2)), MID(A2,SEQUENCE(LEN(A2)),1)="-") Tras pulsar Intro, la fórmula mostrará automáticamente la posición de cada aparición del carácter «-» en celdas adyacentes. Si desea obtener únicamente la aparición deseada, puede utilizar:
=INDEX(FILTER(SEQUENCE(LEN(A2)), MID(A2,SEQUENCE(LEN(A2)),1)="-"),2) Sustituya 2 por el número de aparición deseado. Este método resulta especialmente potente para matrices o listas de longitud variable, aunque requiere una versión de Excel compatible con estas funciones.
Consejo: Si observa un error #¡CALC! u otro similar, compruebe que su versión de Excel sea compatible con matrices dinámicas y asegúrese de que las celdas a las que hace referencia contengan datos de texto.
Código VBA para encontrar la posición Aparición de un carácter
Si necesita una solución para encontrar no solo la última, sino cualquier aparición de un carácter, VBA también puede ayudarle. La siguiente macro se puede personalizar fácilmente para adaptarse a múltiples necesidades de análisis y suponer un importante ahorro de tiempo cuando se utiliza repetidamente en varios libros de trabajo.
1. Vaya a la pestaña Programador > Visual Basic, luego seleccione Insertar > Módulo. Pegue el siguiente código en la ventana del módulo:
Function NthPositionOfChar(cell As Range, ch As String, nth As Integer) As Long
Dim s As String
Dim i As Long, count As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
s = cell.Value
count = 0
For i = 1 To Len(s)
If Mid(s, i, 1) = ch Then
count = count + 1
If count = nth Then
NthPositionOfChar = i
Exit Function
End If
End If
Next i
NthPositionOfChar = 0
End Function 2. Cierre el editor y utilice la fórmula =NthPositionOfChar(A2,"-",2) (sustituya los argumentos según sea necesario) en su hoja de cálculo para obtener la posición de la segunda aparición del carácter «-» en la celda A2. Tenga en cuenta que, si dicha aparición no existe, la función devolverá 0.
Este código es ideal para extraer información de forma flexible según los delimitadores presentes en los datos o para simplificar tareas repetitivas de análisis. Además, las funciones personalizadas en VBA se pueden adaptar a requisitos más especializados, como la búsqueda de caracteres que distingan entre mayúsculas y minúsculas o el manejo de conjuntos de datos más amplios.
Al trabajar con cadenas de texto y posiciones de caracteres, verifique siempre la presencia de caracteres ocultos o no imprimibles —como espacios, retornos de carro o símbolos Unicode especiales—, ya que pueden alterar los resultados de sus fórmulas. Asimismo, si sus datos emplean distintos delimitadores, asegúrese de que sean coherentes antes de aplicar fórmulas o macros. En caso de errores, revise detenidamente los parámetros de entrada, las referencias en las fórmulas y que el tipo de dato (texto o número) sea compatible con la función utilizada.
Combinar fórmulas, VBA y las funciones de Kutools ofrece una flexibilidad integral para abordar tanto tareas rutinarias como avanzadas de procesamiento de texto en Excel. Elija el método que mejor se ajuste a su nivel técnico, versión de Excel y complejidad de los datos para lograr la máxima precisión y eficiencia.
Más artículos relacionados:
- Extraer todas las palabras excepto la primera o la última en Excel
- Extraer todas las palabras de una celda excepto la primera o la última puede ayudarte a eliminar fácilmente la palabra no deseada. En este caso, claro está, podrías copiar las palabras que necesitas y pegarlas una por una en otra celda, pero esto se volvería tedioso si tienes múltiples celdas que requieren extraer todo menos la primera o la última palabra. ¿Cómo podrías hacerlo rápida y fácilmente en Excel?
- Extraer caracteres de derecha a izquierda en una celda
- Este artículo explica cómo extraer caracteres desde la derecha de una celda hasta encontrar un espacio, obteniendo así el resultado deseado en una hoja de Excel. Incluye una fórmula útil que resuelve esta tarea de forma rápida y sencilla.
- Eliminar los primeros, últimos X caracteres o los de una posición determinada
- Este artículo explica cómo extraer caracteres desde la derecha de una celda hasta encontrar un espacio, obteniendo así el resultado deseado en una hoja de Excel. Incluye una fórmula útil que resuelve esta tarea de forma rápida y sencilla.
- Encontrar la posición de la primera letra minúscula
- Si tiene una lista de cadenas de texto que combinan letras mayúsculas y minúsculas en una hoja de Excel, ¿cómo puede hallar rápidamente la posición de la primera letra minúscula sin contarlas manualmente?
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos