Las funciones de texto de Excel te permiten extraer, limpiar, combinar y transformar datos de texto sin editarlos a mano. Tanto si estás separando el nombre de una columna de nombre completo, quitando espacios sobrantes de unos datos importados o reformateando códigos, estas son las herramientas.
> Los textos de ejemplo se mantienen en inglés cuando la lección depende de contar caracteres o de en qué posición está cada uno: traducirlos cambiaría los resultados que se indican.
IZQUIERDA: extraer caracteres por la izquierda
IZQUIERDA devuelve un número determinado de caracteres del principio (la izquierda) de una cadena de texto. Sintaxis: =IZQUIERDA(texto; núm_de_caracteres) Ejemplo:- =IZQUIERDA("Hello World"; 5) devuelve "Hello"
- =IZQUIERDA(A1; 3) devuelve los 3 primeros caracteres de lo que haya en A1
DERECHA: extraer caracteres por la derecha
DERECHA devuelve un número determinado de caracteres del final (la derecha) de una cadena de texto. Sintaxis: =DERECHA(texto; núm_de_caracteres) Ejemplo:- =DERECHA("ABC-12345"; 5) devuelve "12345"
- =DERECHA(A1; 4) devuelve los 4 últimos caracteres
EXTRAE: extraer caracteres del medio
EXTRAE devuelve una subcadena del interior de un texto, empezando en la posición que le indiques. Sintaxis: =EXTRAE(texto; posición_inicial; núm_de_caracteres)- posición_inicial: el carácter por el que empezar (1 = el primero)
- núm_de_caracteres: cuántos caracteres devolver
- =EXTRAE("Hello World"; 7; 5) devuelve "World" (empieza en la posición 7 y toma 5 caracteres)
- =EXTRAE("2024-06-15"; 6; 2) devuelve "06" (el mes)
LARGO: contar caracteres
LARGO devuelve el número total de caracteres de una cadena de texto, espacios incluidos. Sintaxis: =LARGO(texto) Ejemplo:- =LARGO("Hello") devuelve 5
- =LARGO("Hello World") devuelve 11 (el espacio cuenta)
- =LARGO(A1) cuenta los caracteres de A1
ESPACIOS: quitar los espacios sobrantes
ESPACIOS elimina los espacios del principio y del final de un texto, y reduce a uno solo los espacios consecutivos entre palabras. Sintaxis: =ESPACIOS(texto) Ejemplo:- =ESPACIOS(" Hello World ") devuelve "Hello World"
MAYUSC, MINUSC y NOMPROPIO: cambiar mayúsculas y minúsculas
Estas tres funciones cambian cómo está escrito un texto.
Sintaxis:- =MAYUSC(texto): convierte todos los caracteres a mayúsculas
- =MINUSC(texto): convierte todos los caracteres a minúsculas
- =NOMPROPIO(texto): pone en mayúscula la primera letra de cada palabra
- =MAYUSC("hello world") devuelve "HELLO WORLD"
- =MINUSC("JOHN SMITH") devuelve "john smith"
- =NOMPROPIO("john smith") devuelve "John Smith"
SUSTITUIR: reemplazar texto
SUSTITUIR reemplaza todas las apariciones de un texto dentro de una cadena más larga. Sintaxis: =SUSTITUIR(texto; texto_original; texto_nuevo; [núm_de_ocurrencia])- núm_de_ocurrencia: opcional. Si lo indicas, solo se reemplaza esa aparición (1 = la primera, 2 = la segunda, etc.). Si lo omites, se reemplazan todas.
- =SUSTITUIR("Hello World"; "World"; "Excel") devuelve "Hello Excel"
- =SUSTITUIR("aaa"; "a"; "b") devuelve "bbb"
- =SUSTITUIR("a-b-c"; "-"; ""; 2) devuelve "a-bc" (quita solo el segundo guion)
REEMPLAZAR: reemplazar por posición
REEMPLAZAR cambia los caracteres que ocupan una posición determinada, sea cual sea su contenido. Úsala cuando sepas en qué punto de la cadena hay que hacer el cambio, no cuál es el texto. Sintaxis: =REEMPLAZAR(texto_original; posición_inicial; núm_de_caracteres; texto_nuevo) Ejemplo:- =REEMPLAZAR("ABC-12345"; 4; 1; "/") devuelve "ABC/12345" (cambia el guion de la posición 4 por una barra)
- =REEMPLAZAR(A1; 1; 3; "XYZ") cambia los 3 primeros caracteres por "XYZ"
- Usa SUSTITUIR cuando sabes qué texto hay que cambiar: SUSTITUIR(A1; "viejo"; "nuevo")
- Usa REEMPLAZAR cuando sabes en qué posición está: REEMPLAZAR(A1; 5; 3; "nuevo")
ENCONTRAR: localizar una posición (distingue mayúsculas)
ENCONTRAR devuelve la posición de una subcadena dentro de un texto más largo. Distingue mayúsculas de minúsculas. Sintaxis: =ENCONTRAR(texto_buscado; dentro_del_texto; [posición_inicial])- posición_inicial: opcional, la posición desde la que empezar a buscar (por defecto, 1)
- =ENCONTRAR("l"; "Hello") devuelve 3 (la posición de la primera "l")
- =ENCONTRAR("L"; "Hello") devuelve #¡VALOR!, porque la L mayúscula no aparece y ENCONTRAR distingue mayúsculas
- =ENCONTRAR("@"; "user@example.com") devuelve 5
HALLAR: localizar una posición (sin distinguir mayúsculas)
HALLAR funciona igual que ENCONTRAR, pero no distingue mayúsculas de minúsculas. Además admite comodines (* y ?). Sintaxis: =HALLAR(texto_buscado; dentro_del_texto; [posición_inicial]) Ejemplos:- =HALLAR("hello"; "Hello World") devuelve 1 (lo encuentra pese a la diferencia de mayúsculas)
- =HALLAR("h?llo"; "Hello") devuelve 1 (el comodín cubre cualquier carácter suelto)
CONCAT y UNIRCADENAS: combinar texto
CONCAT
CONCAT une varias cadenas de texto o rangos en una sola. Sintaxis: =CONCAT(texto1; texto2; ...) Ejemplo:- =CONCAT(A1; " "; B1) une el nombre, un espacio y el apellido
- =CONCAT(A1:A5) une todos los valores de A1:A5 sin separador
UNIRCADENAS
UNIRCADENAS une valores con un separador y, si quieres, salta las celdas vacías. Sintaxis: =UNIRCADENAS(delimitador; ignorar_vacías; texto1; texto2; ...) Ejemplos:- =UNIRCADENAS(", "; VERDADERO; A1:A5) une A1:A5 con comas y se salta las celdas vacías
- =UNIRCADENAS("-"; FALSO; "2024"; "06"; "15") devuelve "2024-06-15"
TEXTO: convertir números en texto con formato
TEXTO convierte un número o una fecha en una cadena de texto con un formato concreto. Es la forma de mostrar números dentro de frases o concatenaciones. Sintaxis: =TEXTO(valor; formato) Ejemplos:- =TEXTO(1234,5; "#.##0,00 $") devuelve "1.234,50 $"
- =TEXTO(HOY(); "D 'de' MMMM 'de' AAAA") devuelve "16 de abril de 2026"
- =TEXTO(0,856; "0 %") devuelve "86 %"
- =TEXTO(A1; "000000") rellena un número con ceros a la izquierda hasta 6 dígitos
="Los ingresos fueron " & TEXTO(A1; "#.##0 $") & " en el T" & B1
Devuelve: "Los ingresos fueron 1.234.500 $ en el T3"
Sin TEXTO, el número aparecería sin formato dentro de la cadena.
Combinar funciones: ejemplos reales
Extraer el nombre de pila de un nombre completo
Nombre completo en A1, separado por un espacio (por ejemplo, "John Smith"):
=IZQUIERDA(A1; ENCONTRAR(" "; A1) - 1)
ENCONTRAR localiza el espacio. IZQUIERDA se queda con todo lo anterior.
Extraer el apellido de un nombre completo
=DERECHA(A1; LARGO(A1) - ENCONTRAR(" "; A1))
ENCONTRAR da la posición del espacio. LARGO da la longitud total. La resta da cuántos caracteres hay después del espacio, y DERECHA los extrae.
Si los nombres llevan segundo nombre o varios espacios, hace falta una fórmula más elaborada con SUSTITUIR y ENCONTRAR para localizar el último espacio.
Extraer el dominio de una dirección de correo
Correo en A1 (por ejemplo, "user@example.com"):
=DERECHA(A1; LARGO(A1) - ENCONTRAR("@"; A1))
ENCONTRAR localiza la "@". LARGO menos esa posición da cuántos caracteres vienen después. DERECHA los extrae: "example.com".
Extraer el usuario de un correo
=IZQUIERDA(A1; ENCONTRAR("@"; A1) - 1)
Devuelve todo lo anterior a la "@": "user".
Limpiar datos importados (ESPACIOS + NOMPROPIO)
=NOMPROPIO(ESPACIOS(A1))
Quita los espacios sobrantes y pone los nombres bien escritos de una sola pasada.
Quitar los caracteres no numéricos de un teléfono
=SUSTITUIR(SUSTITUIR(SUSTITUIR(SUSTITUIR(A1;"(";"");")";"");"-";"");" ";"")
Las llamadas anidadas a SUSTITUIR quitan paréntesis, guiones y espacios, y dejan solo los dígitos.
Preguntas frecuentes
¿Cuál es la diferencia entre ENCONTRAR y HALLAR?Las dos devuelven la posición de una subcadena. ENCONTRAR distingue mayúsculas: ENCONTRAR("a"; "Apple") devuelve #¡VALOR! porque no hay ninguna "a" minúscula. HALLAR no las distingue: HALLAR("a"; "Apple") devuelve 1. HALLAR además admite comodines (* para cualquier secuencia de caracteres, ? para un carácter suelto). Para la mayoría de las búsquedas, HALLAR es más permisiva.
¿Por qué ESPACIOS no quita todos los espacios?ESPACIOS elimina los espacios normales (ASCII 32) y reduce a uno los espacios interiores. No elimina los espacios de no separación (carácter 160), que aparecen a menudo en datos copiados de páginas web. Usa =SUSTITUIR(ESPACIOS(A1); CARACTER(160); " ") para tratar los dos tipos, o =LIMPIAR(ESPACIOS(A1)) para quitar además los caracteres no imprimibles.
¿Cómo cuento las palabras de una celda?Cuenta los espacios y suma uno: =LARGO(ESPACIOS(A1)) - LARGO(SUSTITUIR(ESPACIOS(A1); " "; "")) + 1. Aplica ESPACIOS primero para normalizar el espaciado y después cuenta cuántos espacios quedan.
¿Puedo extraer el texto que hay entre dos caracteres?Sí, con EXTRAE y ENCONTRAR. Para extraer el texto entre paréntesis de "Resultado (Bueno)":
=EXTRAE(A1; ENCONTRAR("("; A1)+1; ENCONTRAR(")"; A1)-ENCONTRAR("("; A1)-1)
Devuelve "Bueno". ¿Cómo compruebo si una celda contiene un texto concreto?
Usa HALLAR o ENCONTRAR envuelta en ESNUMERO: =ESNUMERO(HALLAR("manzana"; A1)) devuelve VERDADERO si A1 contiene "manzana" (sin distinguir mayúsculas). Úsalo dentro de un SI: =SI(ESNUMERO(HALLAR("manzana"; A1)); "Contiene manzana"; "No").
¿Cuál es la longitud máxima de texto que admite una celda de Excel?Una celda admite hasta 32.767 caracteres, pero solo se muestran los 1.024 primeros. Los 32.767 se guardan igualmente y las funciones de texto pueden trabajar con todos ellos.

