Word a Excel

Cómo separar números y letras en una celda de Excel

noviembre 2, 2026 Tuto Excel 15 min read
Cómo separar números y letras en una celda de Excel

Separar números y letras en una misma celda de Excel es una tarea muy habitual: códigos de producto, matrículas, referencias de inventario o importes con su unidad ("80023-TEXTO", "123A56", "A-1500") llegan así de la base de datos y hay que partirlos en columnas para poder filtrarlos, ordenarlos o sumarlos. En este tutorial aprenderás a hacerlo con fórmulas, paso a paso, sobre una hoja de ejemplo. Al terminar sabrás sacar el número y el texto cuando el número va a la derecha o a la izquierda, y qué herramienta usar cuando la mezcla es más desordenada. Las funciones que verás (IZQUIERDA, DERECHA, EXTRAE, ENCONTRAR, HALLAR, LARGO, SUSTITUIR y VALOR) existen en Excel 2007 en adelante, así que el tutorial sirve para Microsoft 365, 2024, 2021, 2019, 2016, 2013 y 2010, además de Excel para la web y para Mac.

Qué problema resuelve separar números y letras

Imagina la hoja "Códigos" de tu inventario: en la columna A tienes identificadores como "80023-TEXTO", "1024-CLIENTE", "7-FACTURA". El número y la letra están pegados y quieres el número en una columna y el texto en otra, para poder buscar por número, ordenar por cliente o cruzar los datos con otra tabla.

Hacerlo a mano funciona con cinco filas, pero se vuelve imposible cuando tienes trescientos códigos. Cualquier cambio en el original obliga a repetir el copia y pega, y es facilísimo equivocarse con el guion o dejarse un carácter.

La solución es dejar que Excel haga el corte por ti con fórmulas de texto. Esas fórmulas localizan el carácter que separa número y letras (el guion, el espacio o la primera letra), miden la longitud de cada trozo y devuelven cada parte en su columna. Una vez que las fórmulas están escritas, solo tienes que arrastrarlas hacia abajo: cambias un código en la columna A y la columna B y la C se actualizan solas.

La idea clave es la misma que cuando partes una cuerda con unas tijeras: primero marcas dónde está el corte (ENCONTRAR), luego mides cuánto mide cada lado (LARGO) y por último cortas la cantidad justa de caracteres (IZQUIERDA, DERECHA o EXTRAE). El resto del tutorial aplica esa misma idea a casos cada vez más desordenados.

Las funciones que partirán tu cadena

Para separar números y letras en Excel necesitas un pequeño juego de funciones de texto. Son viejas conocidas: existen desde Excel 2007 y funcionan igual en todas las versiones posteriores, incluida Excel para la web.

  • IZQUIERDA (LEFT): devuelve los primeros caracteres de una cadena.
  • DERECHA (RIGHT): devuelve los últimos caracteres.
  • EXTRAE (MID): devuelve los caracteres que empiezan en una posición concreta.
  • LARGO (LEN): cuenta cuántos caracteres tiene la cadena.
  • ENCONTRAR (FIND): dice en qué posición está un carácter; distingue mayúsculas.
  • HALLAR (SEARCH): igual que ENCONTRAR, pero no distingue mayúsculas y admite comodines.
  • SUSTITUIR (SUBSTITUTE): reemplaza un texto por otro.
  • VALOR (VALUE): convierte una cadena que parece número en un número de verdad.
  • ESNUMERO (ISNUMBER): dice si un valor es un número; lo usaremos para detectar el primer carácter no numérico.

EXTRAE, IZQUIERDA y DERECHA: cortar por posición

Las tres funciones cortan, pero cada una lo hace desde un sitio distinto. IZQUIERDA corta desde el primer carácter, DERECHA desde el último, y EXTRAE desde una posición que tú le indiques y durante los caracteres que le pidas.

=IZQUIERDA("80023-TEXTO";5)
=DERECHA("80023-TEXTO";5)
=EXTRAE("80023-TEXTO";7;5)

La primera devuelve "80023", la segunda "TEXTO" (los cinco últimos) y la tercera también "TEXTO" empezando en la posición 7. EXTRAE es útil cuando lo que te interesa está en medio de la cadena.

ENCONTRAR y HALLAR: localizar dónde está el corte

Antes de cortar necesitas saber dónde está el guion, el espacio o la letra que separa las dos partes. Ahí entran ENCONTRAR y HALLAR. Las dos devuelven la posición de un carácter dentro de una cadena; la diferencia es que HALLAR no distingue mayúsculas de minúsculas y admite comodines (? para un carácter, * para varios), mientras que ENCONTRAR es exacta y distingue mayúsculas.

=ENCONTRAR("-";"80023-TEXTO")
=HALLAR("-";"80023-texto")

Las dos devuelven 6, porque el guion está en la posición 6. Sobre la cadena "80023-TEXTO", ENCONTRAR y HALLAR dan el mismo resultado porque el guion es un carácter fijo.

LARGO, SUSTITUIR y VALOR: medir, limpiar y convertir

LARGO mide: =LARGO("80023-TEXTO") devuelve 11. SUSTITUIR reemplaza: =SUSTITUIR(A2;"-";"") elimina el guion. Y VALOR convierte texto en número: =VALOR("80023") devuelve el número 80023, que ya se puede sumar, restar o usar en BUSCARV.

Nota: Los argumentos en este artículo van separados con punto y coma, el separador habitual de Excel en español. Si tu Excel está configurado con punto decimal (México, Estados Unidos), cámbialos por comas: =IZQUIERDA(A2,5).

Separar cuando el número va a la derecha

Empezamos por el caso más fácil: un guion siempre separa número a la izquierda y texto a la derecha. La hoja de ejemplo se llama "Códigos" y tiene el guion como delimitador.

B2fx=VALOR(DERECHA(A2;LARGO(A2)-ENCONTRAR("-";A2)))
A B C
1 Código Nº Texto
2 80023-TEXTO 80023 TEXTO
3 1024-CLIENTE 1024 CLIENTE
4 7-FACTURA 7 FACTURA
5 901-CASA 901 CASA
6 45500-PEDIDO 45500 PEDIDO
Códigos

Pasos:

  1. En A1 escribe Código, en B1 Nº y en C1 Texto.
  2. Copia las celdas de la columna A (A2:A6) tal cual aparecen en la tabla.
  3. Selecciona B2 y escribe la fórmula para sacar el número.
  4. Selecciona C2 y escribe la fórmula para sacar el texto.
  5. Arrastra el controlador de relleno de B2 y C2 hasta la fila 6.

Sacar el número con DERECHA, LARGO y ENCONTRAR

La fórmula de B2 combina las tres funciones en una sola línea:

=VALOR(DERECHA(A2;LARGO(A2)-ENCONTRAR("-";A2)))

Cómo funciona: ENCONTRAR("-";A2) vale 6 (la posición del guion). LARGO(A2) vale 11 (todos los caracteres). LARGO(A2)-ENCONTRAR da 11-6 = 5, que es justo el número de letras que hay a la derecha. DERECHA devuelve esos 5 caracteres como texto, y VALOR los convierte en el número 80023. El resultado aparece alineado a la derecha en la celda, señal de que Excel lo trata como número.

Sacar el texto con IZQUIERDA

Para el texto de la columna C la fórmula es más corta: solo hay que coger todo lo que hay antes del guion.

=IZQUIERDA(A2;ENCONTRAR("-";A2)-1)

ENCONTRAR("-";A2) vale 6; le restamos 1 para no incluir el guion, y IZQUIERDA devuelve los 5 caracteres anteriores: "TEXTO".

Comprueba: B2 muestra 80023 alineado a la derecha, C2 muestra "TEXTO" alineado a la izquierda, y al arrastrar hasta B6:C6 todas las filas quedan separadas. Si la columna B te sale 0 o #¡VALOR!, repasa los paréntesis.

Separar cuando el número va a la izquierda

Ahora el caso contrario: el número está al principio y el texto al final, sin guion que valga como delimitador. La hoja "Productos" tiene códigos como "123A56", "7B", "45500PED". El problema es que ya no hay un carácter fijo que marque el corte, así que hay que buscar la primera letra.

D2fx=MIN(SI(ESNUMERO(–EXTRAE(A2;FILA(INDIRECTO("1:"&LARGO(A2)));1));"";FILA(INDIRECTO("1:"&LARGO(A2)))))
A B C D
1 Código Nº Pos Texto
2 123A56 123 4 A56
3 7B 7 2 B
4 45500PED 45500 6 PED
5 22K9 22 3 K9
6 8Z 8 2 Z
Productos

Pasos:

  1. Crea la hoja "Productos" y rellena A2:A6 con los códigos.
  2. En B1 escribe Nº, en C1 Pos y en D1 Texto.
  3. En C2 escribe la fórmula que localiza la primera letra y anota su posición.
  4. En B2 y D2 escribe las fórmulas que usan esa posición.
  5. Selecciona B2:D2 y arrastra el controlador de relleno hasta la fila 6.

Hallar la posición del primer dígito no numérico

Necesitamos saber en qué posición está la primera letra. La fórmula, escrita en C2, recorre la cadena carácter a carácter y devuelve la posición más pequeña donde el carácter NO es un número:

=MIN(SI(ESNUMERO(--EXTRAE(A2;FILA(INDIRECTO("1:"&LARGO(A2)));1));"";FILA(INDIRECTO("1:"&LARGO(A2)))))

Sobre "123A56": LARGO vale 6, EXTRAE va cogiendo cada carácter (1, 2, 3, A, 5, 6), –EXTRAE lo convierte en número cuando puede y ESNUMERO devuelve VERDADERO para los cinco primeros y FALSO para "A". La fórmula se queda con la posición 4 (la A) y la guarda en C2.

Cuidado: Esta fórmula es matricial. En Excel 2021, 2024 y Microsoft 365 basta con Entrar; en Excel 2019 o 2016 hay que confirmarla con Ctrl+Mayús+Entrar y aparecen llaves {} alrededor.

Sacar el bloque inicial de números con IZQUIERDA y VALOR

Una vez que tenemos la posición de la primera letra en C2, la parte numérica es todo lo que hay antes:

=VALOR(IZQUIERDA(A2;C2-1))

Sobre "123A56", IZQUIERDA coge los 3 primeros caracteres ("123") y VALOR los convierte en el número 123.

Sacar el resto con DERECHA y LARGO

El texto que queda después de la primera letra se calcula con DERECHA y LARGO:

=DERECHA(A2;LARGO(A2)-C2+1)

LARGO(A2) vale 6, C2 vale 4, así que 6-4+1 = 3 caracteres desde la derecha, que son "A56".

Comprueba: B2 muestra 123, C2 muestra 4 y D2 muestra A56. Al arrastrar, todas las filas quedan separadas. Si la columna C devuelve un error, confirma la fórmula con Ctrl+Mayús+Entrar (en versiones antiguas).

Cuando la mezcla es más desordenada

Los dos casos anteriores asumen que hay un delimitador o que los números están todos al principio. En la realidad a veces los números están en medio ("AB12CD34"), o las letras delante y detrás ("X1000Y"), o las longitudes varían sin patrón. Excel estándar no tiene una función nativa tipo "extrae solo los números": no existe en 2007, 2010, 2013, 2016, 2019, 2021, 2024 ni en Microsoft 365. Hay dos caminos: una función personalizada con VBA o, si el separador es fijo, la herramienta Texto en columnas.

La función personalizada Limpia con VBA

Con VBA puedes crear una función que recorra la cadena con un bucle y se quede solo con los números, solo con las letras o con todo lo no numérico. Funciona desde Excel 2007, pero el libro tiene que guardarse como .xlsm (libro habilitado para macros) y el otro usuario debe tener las macros activadas.

Pasos:

  1. Abre el editor de VBA con Alt+F11.
  2. En el menú Insertar > Módulo pega el código siguiente:

Function SoloNumeros(celda As Range) As String
    Dim i As Integer
    Dim resultado As String
    resultado = ""
    For i = 1 To Len(celda.Value)
        If IsNumeric(Mid(celda.Value, i, 1)) Then
            resultado = resultado & Mid(celda.Value, i, 1)
        End If
    Next i
    SoloNumeros = resultado
End Function

Function SoloLetras(celda As Range) As String
    Dim i As Integer
    Dim resultado As String
    resultado = ""
    For i = 1 To Len(celda.Value)
        If Not IsNumeric(Mid(celda.Value, i, 1)) Then
            resultado = resultado & Mid(celda.Value, i, 1)
        End If
    Next i
    SoloLetras = resultado
End Function

Function NoNumerico(celda As Range) As String
    Dim i As Integer
    Dim resultado As String
    resultado = ""
    For i = 1 To Len(celda.Value)
        If Not IsNumeric(Mid(celda.Value, i, 1)) Then
            resultado = resultado & Mid(celda.Value, i, 1)
        End If
    Next i
    NoNumerico = resultado
End Function
  1. Cierra el editor con Alt+Q.
  2. En la hoja, escribe =SoloNumeros(A2), =SoloLetras(A2) o =NoNumerico(A2) y arrastra hacia abajo.

Texto en columnas para un separador fijo

Si tus celdas usan siempre el mismo delimitador (un guion, un espacio, una coma), la herramienta Texto en columnas resuelve el caso en tres clics, sin escribir ninguna fórmula. En Microsoft 365 y 2024 también existe la función DIVIDIRTEXTO, que divide una cadena en varias celdas a partir de un delimitador.

DatosHerramientas de datosTexto en columnas

En el paso 3 puedes elegir el formato de cada columna (Texto, Número, Fecha). Si marcas Número en la primera columna, los códigos saldrán ya como número sin necesidad de VALOR.

Por qué a veces "falla" la separación

Cuatro tropiezos reales que aparecen al usar estas fórmulas, con la causa y el arreglo en una línea cada uno.

El número se queda alineado a la izquierda

Lo que ves: B2 muestra 80023 pero pegado al borde izquierdo, como si fuera texto. La causa es que falta VALOR: DERECHA devuelve texto y, sin conversión, Excel no lo trata como número. El arreglo es envolver el resultado en VALOR o multiplicar por 1.

=VALOR(DERECHA(A2;LARGO(A2)-ENCONTRAR("-";A2)))
=DERECHA(A2;LARGO(A2)-ENCONTRAR("-";A2))*1

ENCONTRAR da #¡VALOR! porque no está el guion

Lo que ves: la celda muestra #¡VALOR! justo al arrastrar la fórmula. La causa es que una fila no contiene el guion que ENCONTRAR está buscando. El arreglo es envolver la fórmula en SI.ERROR o cambiar a HALLAR si el delimitador puede variar.

=SI.ERROR(VALOR(DERECHA(A2;LARGO(A2)-ENCONTRAR("-";A2)));"")

La fórmula devuelve 0 en vez del número

Lo que ves: la celda muestra 0 en vez del número esperado. La causa suele ser LARGO mal medido o una resta de posiciones que da un número negativo o cero. El arreglo es descomponer la fórmula en celdas auxiliares: una con =LARGO(A2), otra con =ENCONTRAR("-";A2) y la última con la resta, hasta dar con el paso que falla.

El libro con VBA no conserva la función al cambiar de equipo

Lo que pasa: al abrir el .xlsx en otro ordenador, SoloNumeros aparece como #¿NOMBRE?. La causa es que las macros no se guardan en formato .xlsx. El arreglo es guardar el archivo como .xlsm (Libro de Excel habilitado para macros) y comprobar que el otro usuario tiene activadas las macros en Archivo > Opciones > Centro de confianza > Configuración de macros.

Lo que ya sabes hacer separando números y letras

  • Sacar el número cuando está a la derecha de un delimitador, con DERECHA, LARGO, ENCONTRAR y VALOR.
  • Sacar el texto cuando está a la izquierda del delimitador, con IZQUIERDA y ENCONTRAR.
  • Sacar el número cuando está al principio de la cadena, localizando la primera letra con MIN sobre HALLAR y cortando después con IZQUIERDA y VALOR.
  • Resolver mezclas desordenadas con una función personalizada en VBA (SoloNumeros, SoloLetras, NoNumerico) o con la herramienta Texto en columnas cuando el delimitador es fijo.

El siguiente paso natural es limpiar los datos ya separados: convierte los textos numéricos con VALOR, o pega encima solo los valores con Ctrl+C y Ctrl+Alt+V > Solo valores, para borrar las fórmulas y quedarte con el resultado.

Dudas al separar números y letras en Excel

¿Cómo separar números y letras en una celda de Excel sin usar fórmulas? Con la herramienta Datos > Herramientas de datos > Texto en columnas, eliges el delimitador y Excel parte la cadena en columnas.

¿Qué función de Excel extrae solo los números de una celda? No hay una función nativa para eso. El camino estándar es usar EXTRAE con ENCONTRAR, y para casos desordenados una función personalizada con VBA.

¿Cómo separar texto y números cuando no hay guion ni espacio? Hay que localizar la primera letra buscando con HALLAR sobre cada letra del abecedario y quedándose con la posición menor.

¿Por qué mi número sale alineado a la izquierda? Porque la fórmula devuelve texto. Envuélvela en VALOR o multiplica el resultado por 1.

¿Puedo hacer esto en Excel para la web? Sí, las funciones de texto (IZQUIERDA, DERECHA, EXTRAE, ENCONTRAR, LARGO, VALOR) están todas. VBA no se ejecuta en la web, pero la función DIVIDIRTEXTO hace el corte por delimitador de forma nativa en Microsoft 365 y Excel 2024.

Dudas al separar números y letras en Excel

1. ¿Cómo separar números de letras en una celda de Excel con una fórmula?

La forma más práctica es combinar EXTRAE con ESNUMERO y encontrar la posición del primer dígito con HALLAR o ENCONTRAR. Por ejemplo, en A1 con "ABC123" usas =EXTRAE(A1,HALLAR(verdadera posición del número,…),100) para los números y otra fórmula similar que devuelve la parte de texto. Es un sistema que exige fórmulas auxiliares para localizar dónde empieza cada bloque, pero no necesitas macros.

2. ¿Se puede extraer el texto y los números que están mezclados dentro de la misma celda?

Sí, usando funciones como IZQUIERDA, DERECHA, EXTRAE, HALLAR y ESNUMERO puedes separar las letras y los dígitos en columnas distintas. La idea es detectar dónde empieza el número con HALLAR aplicado sobre un array de dígitos {0;1;2;3;4;5;6;7;8;9} y después recortar con EXTRAE o IZQUIERDA. Funciona bien con patrones fijos como "Producto 450" o "LoteA-27".

3. ¿Cómo se separan los números en Excel cuando están junto a otros datos?

Si los números tienen siempre el mismo formato, lo más rápido es usar Texto en columnas desde la pestaña Datos, eligiendo un delimitador concreto o un ancho fijo. Cuando los patrones varían, conviene usar fórmulas con HALLAR y EXTRAE, que permiten dejar solo la parte numérica en una columna aparte. Para casos muy irregulares, una macro VBA con un bucle For que recorra carácter por carácter resuelve cualquier mezcla.

4. ¿De qué forma puedo sacar los números que vienen dentro de un texto en Excel?

La técnica más común es crear una fórmula que recorra cada carácter con ESNUMERO y devuelva solo los dígitos con EXTRAE o UNIRCADENAS en matrices dinámicas. Por ejemplo, =UNIRCADENAS("",VERDADERO,SI(ESNUMERO(–EXTRAE(A1,FILA(INDIRECTO("1:"&LARGO(A1))),1)),EXTRAE(A1,FILA(INDIRECTO("1:"&LARGO(A1))),1),"")) extrae únicamente los números. Disponible en Excel 2021 y Microsoft 365 por las matrices dinámicas.

5. ¿Es posible dividir texto en columnas usando una fórmula en lugar del asistente?

Sí, con funciones como IZQUIERDA, EXTRAE, DERECHA y HALLAR puede imitar el resultado de Texto en columnas sin abrir ningún cuadro de diálogo. Para dividir por un carácter fijo como un guion, basta con =IZQUIERDA(A1,HALLAR("-",A1)-1) para la primera parte y =EXTRAE(A1,HALLAR("-",A1)+1,100) para el resto. Es útil cuando quieres que el resultado se actualice solo al cambiar los datos.

Fuentes

  1. MicrosoftFormatos de fecha y hora en español — documentación oficialconsultado el 12/10/2026
  2. MicrosoftCONTAR — documentación oficialconsultado el 12/10/2026
  3. MicrosoftESNUMERO — documentación oficialconsultado el 12/10/2026
  4. MicrosoftALEATORIO.ENTRE — documentación oficialconsultado el 12/10/2026
  5. MicrosoftSECUENCIA — documentación oficialconsultado el 12/10/2026