Su pensión en Colpensiones. Calcule la que tendría hoy o planee la que quiere tener. Conózcalo aquí

Extraer texto antes, después o entre caracteres en Excel

Cuando una celda contiene varios datos separados por un carácter, como una coma, un guion, un punto o una arroba, Excel permite extraer solo la parte que necesitamos combinando la función EXTRAE con ENCONTRAR. ¿Cómo se extrae el texto que está antes de ese carácter, el que está después, el que está entre dos caracteres, como unos paréntesis, o el que sigue a la última aparición?

Las funciones que se usan para extraer texto.

Antes de armar las fórmulas, conviene conocer las piezas. Todas trabajan con la posición de los caracteres dentro del texto, contando desde 1.

EXTRAE.

Devuelve un número determinado de caracteres de un texto, a partir de la posición que se le indique. Tiene tres argumentos: el texto, la posición inicial y el número de caracteres:

=EXTRAE(A1;1;3)

Si A1 contiene «Gerencie.com», el resultado es «Ger»: tres caracteres a partir del primero. Para obtener solo la primera letra, el número de caracteres es 1: =EXTRAE(A1;1;1), que equivale a =IZQUIERDA(A1;1).

ENCONTRAR.

Devuelve la posición en la que aparece un carácter o un texto dentro de otro. Tiene dos argumentos obligatorios, lo que se busca y dónde se busca, y uno opcional, la posición desde la que empieza a buscar:

=ENCONTRAR(".";A1)

Con «Gerencie.com», el resultado es 9, porque el punto es el noveno carácter. Si el carácter no existe, ENCONTRAR devuelve el error #¡VALOR!.

HALLAR.

Hace lo mismo que ENCONTRAR, con dos diferencias: no distingue mayúsculas de minúsculas y admite comodines, como el signo ? para cualquier carácter y el asterisco para cualquier cadena. Con «Gerencie.com», =ENCONTRAR("g";A1) da error, porque la G es mayúscula, mientras que =HALLAR("g";A1) da 1.

Para buscar un separador, como una coma o un punto, da igual cuál se use. Cuando se buscan letras, HALLAR es más flexible.

IZQUIERDA, DERECHA y LARGO.

IZQUIERDA devuelve los primeros caracteres de un texto, DERECHA los últimos, y LARGO cuenta cuántos caracteres tiene. Combinadas con ENCONTRAR, permiten extraer cualquier parte de un texto.

Extraer el texto antes de un carácter.

Para extraer lo que está antes de un carácter, se toman con IZQUIERDA tantos caracteres como la posición del carácter menos uno, para no incluirlo:

=IZQUIERDA(A1;ENCONTRAR(",";A1)-1)

La fórmula equivalente con EXTRAE es =EXTRAE(A1;1;ENCONTRAR(",";A1)-1). Para otro separador, basta con cambiar el que está entre comillas: "-" para un guion, "." para un punto, "@" para una arroba.

Supongamos que exportamos a Excel las estadísticas de búsqueda de un sitio y cada fila queda así en una sola celda: derecho de petición,43.568,2%,14.156,1%. Si solo nos interesa la palabra clave, que va hasta la primera coma, la fórmula anterior devuelve «derecho de petición».

Ejemplo con el texto antes del primer punto.

Un lector nos consultó cómo obtener solo la categoría de una lista de productos como estas:

  • CONTENEDOR.L_36.DIVISIÓN
  • MATERIAL DE EMPAQUE.PELÍCULA.TRANSPARENTE.N/A
  • VASO EPS.8_OZ.BLANCO

La categoría es lo que está antes del primer punto, de modo que la fórmula es:

=IZQUIERDA(A1;ENCONTRAR(".";A1)-1)

Los resultados son «ESPUMADO», «MATERIAL DE EMPAQUE» y «SEMIPROCESADO». ENCONTRAR devuelve la posición del primer punto, aunque haya varios.

Si algunas celdas no tienen el carácter.

Si una celda no contiene el separador, ENCONTRAR da error y la fórmula muestra #¡VALOR!. Para que en ese caso devuelva el texto completo, se envuelve en SI.ERROR:

=SI.ERROR(IZQUIERDA(A1;ENCONTRAR(".";A1)-1);A1)

El segundo argumento de SI.ERROR es lo que se muestra en caso de error. Si se prefiere dejar la celda vacía, se escribe "".

Extraer el texto después de un carácter.

Para lo que está después del carácter, EXTRAE empieza en la posición siguiente al separador:

=EXTRAE(A1;ENCONTRAR("@";A1)+1;LARGO(A1))

Con «[email protected]», el resultado es «empresa.com». Como tercer argumento se usa LARGO(A1), que es más de lo necesario; EXTRAE no da error si se le piden más caracteres de los que hay, simplemente devuelve hasta el final. La fórmula exacta sería LARGO(A1)-ENCONTRAR("@";A1), y también puede escribirse con DERECHA:

=DERECHA(A1;LARGO(A1)-ENCONTRAR("@";A1))

DERECHA toma los últimos caracteres, tantos como los que hay después de la arroba: el largo total menos la posición de la arroba.

Extraer el texto entre dos caracteres.

Cuando el dato está entre dos caracteres, EXTRAE empieza después del primero y toma tantos caracteres como hay entre los dos. El número de caracteres es la posición del segundo menos la del primero, menos uno.

Texto entre paréntesis.

Supongamos una lista de ciudades con su departamento: «Medellín (Antioquia)», «Ibagué (Tolima)», «Cali (Valle), Colombia». Para extraer el departamento:

=SI.ERROR(EXTRAE(A1;ENCONTRAR("(";A1)+1;ENCONTRAR(")";A1)-ENCONTRAR("(";A1)-1);"")

El resultado es «Antioquia», «Tolima» y «Valle». SI.ERROR deja la celda vacía cuando el texto no tiene paréntesis. Para incluir los paréntesis en el resultado, EXTRAE empieza en el paréntesis de apertura y toma dos caracteres más:

=SI.ERROR(EXTRAE(A1;ENCONTRAR("(";A1);ENCONTRAR(")";A1)-ENCONTRAR("(";A1)+1);"")

Y para obtener solo la ciudad, que es lo que está antes del paréntesis, se usa IZQUIERDA. Como entre la ciudad y el paréntesis hay un espacio, se agrega ESPACIOS para quitarlo:

=SI.ERROR(ESPACIOS(IZQUIERDA(A1;ENCONTRAR("(";A1)-1));A1)

El resultado es «Medellín», sin el espacio final que dejaría la fórmula sin ESPACIOS.

Texto entre comillas.

Las comillas tienen una dificultad adicional: dentro de una fórmula, las comillas delimitan los textos, de modo que para buscar una comilla hay que escribirla doble dentro de otras comillas, es decir, """". Con «Bogotá "DC"» en A1:

=SI.ERROR(EXTRAE(A1;ENCONTRAR("""";A1)+1;ENCONTRAR("""";A1;ENCONTRAR("""";A1)+1)-ENCONTRAR("""";A1)-1);"")

El resultado es «DC». El tercer argumento de ENCONTRAR, ENCONTRAR("""";A1)+1, hace que la segunda búsqueda empiece después de la primera comilla, para encontrar la de cierre.

Extraer el texto después de la segunda o de la última aparición.

Cuando el separador se repite, como los puntos en «SEMIPROCESADO.VASO EPS.8_OZ.BLANCO», a veces necesitamos el segundo segmento o el último.

Entre la primera y la segunda aparición.

La posición del segundo punto se obtiene con una segunda ENCONTRAR que empieza a buscar después del primero: ENCONTRAR(".";A1;ENCONTRAR(".";A1)+1). Con ella, el texto entre el primer y el segundo punto es:

=EXTRAE(A1;ENCONTRAR(".";A1)+1;ENCONTRAR(".";A1;ENCONTRAR(".";A1)+1)-ENCONTRAR(".";A1)-1)

El resultado es «VASO EPS».

Después de la última aparición.

Para el último segmento, «BLANCO», hay que ubicar el último punto. La fórmula clásica reemplaza esa última aparición por un carácter que no exista en el texto, como #, y lo busca:

=DERECHA(A1;LARGO(A1)-ENCONTRAR("#";SUSTITUIR(A1;".";"#";LARGO(A1)-LARGO(SUSTITUIR(A1;".";"")))))

LARGO(A1)-LARGO(SUSTITUIR(A1;".";"")) cuenta cuántos puntos hay; SUSTITUIR cambia solo el último por #; ENCONTRAR da su posición y DERECHA toma lo que sigue.

TEXTOANTES y TEXTODESPUES en Microsoft 365.

En Excel para Microsoft 365 y en Excel 2024 existen dos funciones que simplifican todo lo anterior. TEXTOANTES devuelve lo que está antes de un separador, y TEXTODESPUES lo que está después:

=TEXTOANTES(A1;".")
=TEXTODESPUES(A1;".")

Su tercer argumento indica la aparición del separador. Con 2 se usa la segunda, y con un número negativo se cuenta desde el final, de modo que la fórmula larga de la última aparición se reduce a esta:

=TEXTODESPUES(A1;".";-1)

Y el texto entre paréntesis se obtiene anidándolas: =TEXTOANTES(TEXTODESPUES(A1;"(");")"). En las versiones anteriores de Excel estas funciones no existen y muestran el error #¿NOMBRE?.

Si el texto extraído es un número.

Las funciones de texto siempre devuelven texto, aunque lo extraído sean dígitos. Si extraemos «16» de «16_OZ», Excel no podrá sumarlo. Para convertirlo en número se envuelve la fórmula en VALOR:

=VALOR(IZQUIERDA(A1;ENCONTRAR("_";A1)-1))

Con «16_OZ», el resultado es el número 16, que ya se puede sumar o comparar.

Nombres de las funciones en inglés.

Si el Excel está en inglés, o si se consulta un tutorial en ese idioma, estas son las equivalencias:

Español Inglés
EXTRAE MID
ENCONTRAR FIND
HALLAR SEARCH
IZQUIERDA LEFT
DERECHA RIGHT
LARGO LEN
SUSTITUIR SUBSTITUTE
ESPACIOS TRIM
SI.ERROR IFERROR
VALOR VALUE
TEXTOANTES TEXTBEFORE
TEXTODESPUES TEXTAFTER

Si en lugar de extraer una parte lo que se necesita es dividir todo el contenido en varias columnas, la herramienta «Texto en columnas» o la función DIVIDIRTEXTO son más prácticas; se explican en el artículo sobre la fórmula para separar texto en Excel.

Descargar el ejemplo en Excel.

El archivo tiene tres hojas: «Antes y después», donde se puede cambiar el carácter separador y ver la posición, el texto antes, después, entre la primera y la segunda aparición y después de la última, con y sin las funciones de Microsoft 365; «Entre caracteres», con paréntesis y comillas, y «ENCONTRAR y HALLAR», con las diferencias entre ambas. Descargar archivo.

Preguntas frecuentes.

A continuación respondemos las preguntas frecuentes de nuestros lectores.

¿Cómo extraigo el texto antes de un carácter en Excel?

Con =IZQUIERDA(A1;ENCONTRAR(",";A1)-1), cambiando la coma por el carácter que corresponda. En Microsoft 365, con =TEXTOANTES(A1;",").

¿Cómo extraigo el texto después de un carácter?

Con =EXTRAE(A1;ENCONTRAR("@";A1)+1;LARGO(A1)). En Microsoft 365, con =TEXTODESPUES(A1;"@").

¿Cómo extraigo el texto entre paréntesis?

Con =SI.ERROR(EXTRAE(A1;ENCONTRAR("(";A1)+1;ENCONTRAR(")";A1)-ENCONTRAR("(";A1)-1);"").

¿Qué diferencia hay entre ENCONTRAR y HALLAR?

ENCONTRAR distingue mayúsculas de minúsculas y no admite comodines; HALLAR no distingue mayúsculas y sí admite comodines.

¿Por qué la fórmula me da #¡VALOR!?

Porque el carácter buscado no está en la celda. Se soluciona envolviendo la fórmula en SI.ERROR.

¿Cómo extraigo el texto después del último punto o la última barra?

Con =TEXTODESPUES(A1;".";-1) en Microsoft 365, o con la fórmula que combina DERECHA, ENCONTRAR y SUSTITUIR en versiones anteriores.

¿Cómo extraigo el primer carácter de una celda?

Con =IZQUIERDA(A1;1) o =EXTRAE(A1;1;1).

¿Aún no tienes cuenta en Gerencie.com?
El registro es completamente gratis y desbloquea beneficios exclusivos.

Forma de citar este artículo (APA):

Gerencie.com. (2026, octubre 4). Extraer texto antes, después o entre caracteres en Excel [Entrada de blog]. Recuperado de https://www.gerencie.com/extraer-valores-antes-de-una-coma-o-un-guion-en-excel.html

Deje su opinión o su pregunta. Trataremos de darle respuesta. Su comentario o pregunta será editada automáticamente por el sistema.

Regístrese para que le avisemos cuando respondan su pregunta.