TL;DR —
LEFT,RIGHTyMIDson tres reglas que cortan una cadena por posición:LEFT(texto, n)toma los primerosncaracteres,RIGHT(texto, n)toma los últimosn, yMID(texto, inicio, n)tomancaracteres empezando en la posicióninicio. Dos cosas pillan a todo el mundo: el resultado es siempre texto — unLEFT(A2,4)que saca"2026"no se podráSUMni comparar como número hasta que lo envuelvas enVALUE()— y las posiciones fijas son frágiles: en cuanto un código cambia de longitud, tu corte cae en el sitio equivocado.MIDcuenta desde 1, no desde 0. Funciona en todas las versiones de Excel.
=LEFT("INV-2026-0042", 3) ' -> "INV"
=RIGHT("INV-2026-0042", 4) ' -> "0042"
=MID("INV-2026-0042", 5, 4) ' -> "2026"
Toda hoja de cálculo acaba necesitando sacar un trozo de una cadena más larga: el
año de un número de factura, el prefijo de un número de teléfono, el nombre de pila
de un nombre completo. LEFT (en español: IZQUIERDA), RIGHT (en español: DERECHA)
y MID (en español: EXTRAE) son la forma más antigua y portable de hacerlo, y vale
la pena entenderlas a fondo por sus límites, no a pesar de ellos.
Lo que vas a aprender
- La única pregunta que hacerte antes de cada extracción: ¿estoy cortando por posición o por contenido?
- Por qué
MIDempieza en 1, y cómoLEFT/RIGHT/MIDse reparten la misma cadena - Por qué el texto extraído es texto — y el arreglo con
VALUE()que mantiene vivos tus cálculos - Por qué una posición fija es la línea más frágil de tu hoja
- Cuándo parar y recurrir a
FIND,TEXTSPLITo Power Query en su lugar
El modelo mental: tres reglas apoyadas sobre la misma cadena
Imagina la cadena INV-2026-0042 con una regla debajo, con las posiciones numeradas
desde 1. LEFT lee desde el borde izquierdo hacia dentro, RIGHT lee desde el borde
derecho hacia dentro, y MID empieza donde tú señales y lee hacia la derecha. No
buscan, no entienden los datos: solo cuentan caracteres y cortan.
' posición: 1 2 3 4 5 6 7 8 9 ...
' cadena: I N V - 2 0 2 6 - 0 0 4 2
=LEFT(A2, 3) ' "INV" — los primeros 3
=MID(A2, 5, 4) ' "2026" — 4 caracteres desde la posición 5
=RIGHT(A2, 4) ' "0042" — los últimos 4
Esa es toda la idea. El poder y el peligro vienen del mismo hecho: te estás comprometiendo con posiciones exactas. Cuando las posiciones están garantizadas —un código de ancho fijo, un prefijo de país que siempre tiene dos letras— estas funciones son perfectas. Cuando no lo están, estás construyendo sobre arena (más sobre esto abajo).
La regla que lo desbloquea todo: el resultado es siempre texto
Esta es la trampa que manda a la gente a los foros preguntando "¿por qué no suma mi
número extraído?". LEFT, RIGHT y MID siempre devuelven texto, aunque cada
carácter sea un dígito. LEFT("2026-04", 4) te da el texto "2026", no el número
2026 — así que SUM, >, MIN y el eje de un gráfico lo tratan todos como una
etiqueta.
Fuérzalo de vuelta a número de forma explícita:
=VALUE(LEFT(A2, 4)) ' texto "2026" -> número 2026
=--LEFT(A2, 4) ' lo mismo, usando un doble negativo
Lo contrario también vale la pena saberlo: como la salida es texto, los ceros a la
izquierda sobreviven. RIGHT("0042", 4) conserva "0042" en lugar de colapsar a 42 —que
es exactamente lo que quieres para códigos postales, números de cuenta y SKU, y
exactamente lo que debes deshacer con VALUE() (en español: VALOR) cuando de verdad
necesitas hacer aritmética.
MID cuenta desde 1, y num_caracteres es indulgente
MID(texto, núm_inicial, núm_caracteres) empieza en 1: MID("Excel", 1, 2) es
"Ex", no "xc". El error de "uno de más o de menos" aquí es el fallo de MID más
común — si tu corte está desplazado un carácter, comprueba si asumiste que se contaba
desde 0 como en otro lenguaje.
Dos pequeñas clemencias evitan que LEFT/RIGHT/MID den error:
- Omite
núm_caracteresenLEFT/RIGHTy por defecto vale 1. - Pide más caracteres de los que existen y recibes el resto de la cadena, sin error.
RIGHT("AB", 10)devuelve"AB", no#VALUE!.
Así que estas funciones rara vez se rompen: fallan en silencio devolviendo el corte equivocado, lo cual es peor. Ese es el riesgo real, y nos lleva directos a su gran punto débil.
El gran punto débil: las posiciones fijas son frágiles
=RIGHT(A2, 4) para coger los últimos cuatro dígitos funciona de maravilla — hasta que
llega un registro con un sufijo de 5 dígitos, y ahora estás eliminando en silencio un
dígito de cada valor de la columna. Una posición que escribiste a mano solo sigue
siendo correcta mientras los datos mantengan la forma exacta que supusiste. Los datos
del mundo real no lo hacen.
El patrón robusto no es un MID más largo: es dejar de cortar por posición y empezar a
cortar por contenido: encuentra el delimitador y luego corta en relación a él.
' Frágil: asume que el nombre es siempre "Nombre Apellido" con el espacio en la 6
=LEFT(A2, 5)
' Robusto: corta justo donde esté de verdad el primer espacio
=LEFT(A2, FIND(" ", A2) - 1) ' la primera palabra, de cualquier longitud
=MID(A2, FIND("@", A2) + 1, 99) ' todo lo que va después de la @ en un email
Ese FIND(" ", A2) es la bisagra. LEFT/MID/RIGHT responden a "dame los caracteres
de aquí"; FIND y SEARCH responden a "¿dónde está la
referencia por la que debería cortar?". Combinadas, convierten un frágil corte de posición
fija en uno que sigue a los datos. Aprende FIND a continuación — es lo que hace que estas
tres funciones sean fiables y no solo cómodas.
El criterio: cuándo usar la posición y cuándo no
Usa LEFT/RIGHT/MID a secas cuando la posición sea genuinamente fija: un código de
divisa de 3 letras, una exportación antigua de ancho fijo, los dos primeros caracteres de
la abreviatura de una provincia. Combínalas con FIND/SEARCH en cuanto el punto de corte
dependa del contenido de la cadena.
Y sabe cuándo dejarlas del todo. Si estás anidando LEFT/MID/RIGHT y FIND tres
niveles solo para partir una cadena por sus delimitadores, esa es la señal de que quieres
TEXTSPLIT (Excel 365), que divide por un delimitador
en una sola fórmula legible. Para una limpieza puntual de una importación grande, Texto en
columnas o Power Query son más ligeros que una columna de fórmulas frágiles.
LEFT/MID/RIGHT son bisturíes: precisos, pero solo tan buenos como tu puntería.
Cómo ayuda ExcelMaster
La parte difícil de la extracción rara vez es la función — es acertar con las posiciones
y mantenerlas robustas. ExcelMaster toma una petición en lenguaje natural como "saca
el año del número de factura y el dominio del email" y escribe la fórmula con los anclajes
de FIND correctos, un envoltorio VALUE() cuando el resultado debe ser número, y una nota
cuando una posición fija se rompería en la próxima fila rara. Tú describes qué extraer; él se
encarga de contar los caracteres.
Preguntas frecuentes
¿Cuál es la diferencia entre LEFT, RIGHT y MID?
LEFT(texto, n) devuelve los primeros n caracteres, RIGHT(texto, n) devuelve los últimos
n, y MID(texto, inicio, n) devuelve n caracteres empezando en la posición inicio. LEFT
y RIGHT cortan desde un borde; MID corta desde cualquier punto que señales.
¿Por qué no suma mi número extraído?
Porque LEFT, RIGHT y MID siempre devuelven texto, aunque parezca un número. Envuelve
el resultado en VALUE() — =VALUE(LEFT(A2,4)) — o ponle delante un doble negativo
=--LEFT(A2,4) para convertirlo en un número real.
¿MID empieza en 0 o en 1?
En 1. MID("Excel", 1, 2) devuelve "Ex". El primer carácter es la posición 1, no la 0 —una
fuente común de errores de "uno de más o de menos" para quienes vienen de otros lenguajes de
programación.
¿Cómo extraigo el texto hasta un carácter concreto?
Combina LEFT con FIND: =LEFT(A2, FIND(" ", A2) - 1) devuelve todo lo que va antes del
primer espacio. Esto es mucho más robusto que una longitud fija, porque sigue la posición real
del carácter.
¿Qué pasa si le pido a MID más caracteres de los que tiene la cadena?
No se rompe nada — MID (y RIGHT/LEFT) simplemente devuelve todo lo que exista.
RIGHT("AB", 10) devuelve "AB", no un error. Esto es cómodo, pero también significa que una
longitud equivocada falla en silencio en lugar de avisarte.
Probado en
Probado en: Excel 365 (Windows 11) — última verificación 2026-06-29.
Guías relacionadas: Excel FIND y SEARCH · Excel SUBSTITUTE y REPLACE · Excel TEXTSPLIT · Excel TEXTJOIN
