Curso
Cuando trabajas en Excel para limpiar datos, puedes encontrarte con la tarea de extraer números de cadenas alfanuméricas. Este problema es habitual si tienes datos en los que los números están incrustados en cadenas, como códigos de producto o respuestas a encuestas.
En este artículo, te mostraré los diferentes métodos para extraer números de cadenas utilizando fórmulas como RIGHT(), LEN(), y FIND() para diferentes casos de uso. Si no estás familiarizado con algunos de los aspectos básicos, te recomiendo que sigas nuestro curso Introducción a Excel para construir una base sólida en Excel. También deberías consultar nuestra Preparación de datos en Excel para saber más sobre la transformación de datos brutos.
Fórmulas de Excel para extraer números de una cadena
Excel proporciona distintos métodos basados en fórmulas para extraer números de cadenas. Cada método es adecuado para diferentes necesidades en función de dónde se encuentre el número en la cadena. Si tienes poco tiempo, no dudes en saltar a la sección que resuelva tu necesidad más inmediata.
Extraer números del principio de una cadena en Excel
A veces, puedes encontrarte con situaciones en las que los números están al principio de la cadena. En estos casos, utilizarás LEFT() y FIND() para extraer los números de la cadena. Cuando combinas las funciones en una fórmula, los números se extraen utilizando la siguiente lógica:
-
FIND(): Busca la posición de la primera letra en la cadena. -
LEFT(): Extrae los caracteres desde el principio de la cadena hasta la posición de la primera letra menos uno.
La primera parte de la fórmula siguiente busca la primera letra de la cadena. Después, la segunda parte extrae todo lo que hay antes de esa letra, dejando sólo los números iniciales. Si no existen letras, devuelve la cadena completa.
=LEFT(A2, FIND(MID(A2, MIN(FIND({"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}, A2&"ABCDEFGHIJKLMNOPQRSTUVWXYZ")), 1), A2) - 1)

Extraer números del principio de una cadena en Excel. Imagen del autor.
Este método es adecuado cuando se trabaja con conjuntos de datos que suelen utilizar prefijos numéricos, como números de pedido, ID de miembro y números de lote.
Extraer números del final de una cadena en Excel
Si quieres extraer números del final de una cadena en Excel, tendrás que utilizar las funciones RIGHT(), LEN() y FIND(). Supón que tienes los siguientes datos en la hoja Excel. Combinarás las funciones para extraer el número donde:
-
FIND(): Busca la posición del primer dígito de la cadena. -
LEN(): Calcula el número de caracteres desde el primer dígito hasta el final de la cadena. -
RIGHT(): Extrae los caracteres desde el primer dígito hasta el final de la cadena.
La fórmula siguiente elimina todo el texto inicial y devuelve el primer número junto con todo lo que le sigue en la cadena.
=RIGHT(A2, LEN(A2) - MIN(FIND({0,1,2,3,4,5,6,7,8,9}, A2&"0123456789")) + 1)

Extraer números del final de una cadena en Excel. Imagen del autor.
Este método es más útil en conjuntos de datos con caracteres alfanuméricos coherentes, como SKU de productos, ID de pedidos y números de serie.
Extraer números de cualquier posición de una cadena en Excel
Si tienes un conjunto de datos en el que los números aparecen en cualquier parte de la cadena, necesitarás fórmulas avanzadas utilizando TEXTJOIN(), MID(), y ROW() para extraer los números.
Combinando estas funciones en una fórmula extraerás un número de una cadena utilizando la siguiente lógica:
-
ROW()yMID(): Recorre cada carácter de la cadena para determinar si es numérico. -
IFERROR(): Prueba lógica para aislar los números identificados de otros caracteres. -
TEXTJOIN(): Combina todos los caracteres numéricos extraídos en una sola cadena numérica.
=TEXTJOIN("", TRUE, IF(ISNUMBER(--MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1)), MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1), ""))

Extrae el número de cualquier posición de una cadena. Imagen del autor.
Este método es el más adecuado cuando tu conjunto de datos tiene caracteres alfanuméricos con números que aparecen en cualquier parte de la cadena. Como nota, no todas estas funciones están disponibles en versiones antiguas de Excel. Consulta nuestro curso de Fundamentos de Excel para aprender más sobre las funciones y fórmulas disponibles en las últimas versiones de Excel.
Extraer números filtrando los caracteres no deseados
A veces, tus datos están desordenados. Por suerte, puedes combinar las funciones SUBSTITUTE() y TEXTJOIN(). Sólo tienes que seguir estos pasos:
-
SUBSTITUTE(): La funciónSUBSTITUTE()puede utilizarse para sustituir todos los caracteres no numéricos de una cadena por un delimitador, como un espacio o una cadena vacía. Por ejemplo, puedes sustituir letras y caracteres especiales por espacios. -
TEXTJOIN(): A continuación, puedes utilizar la funciónTEXTJOIN()para concatenar los caracteres restantes (que ahora sólo deben ser números) en una sola cadena.
=TEXTJOIN("", TRUE, IF(ISNUMBER(--MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1)), MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1), ""))

Extraer el número de una cadena filtrando los caracteres. Imagen del autor.
Cuándo puedes necesitar extraer números de una cadena en Excel
Veamos ahora dos pequeños casos prácticos para practicar un poco la extracción de números de cadenas.
Ejemplo 1: Extraer números de los códigos de producto
Supón que gestionas un inventario de productos en el que un código de producto único identifica cada artículo. Estos códigos de producto son cadenas alfanuméricas como "PROD1234", "ITEM5678" o "SKU91011".
Así, para extraer el ID de producto numérico de los códigos de producto alfanuméricos, utilizamos funciones basadas en la posición del número. Recuerda, si los números están al final, aplica RIGHT(), LEN(), y FIND(). Si aparecen al principio, utiliza LEFT() y FIND().
El ejemplo siguiente extrae la parte numérica de los códigos de producto de la parte derecha del código.
=RIGHT(A1, LEN(A1) - FIND("-", SUBSTITUTE(A1, MID(A1, MIN(FIND({"0","1","2","3","4","5","6","7","8","9"}, A1&"0123456789")), 1), "-")))

Extraer números de códigos de producto en Excel. Imagen del autor.
Ejemplo 2: Datos de encuestas con números incrustados
Los datos de las encuestas a veces contienen texto y números como "Valorado 5 sobre 10", "Puntuación": 8" o "3 estrellas". Tendremos que trabajar un poco antes de poder calcular medias o identificar tendencias.
Como los números pueden aparecer en cualquier parte del texto, se necesita una fórmula dinámica que utilice TEXTJOIN(), MID() y ROW().
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1) * (ISNUMBER(--MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1))), ""))

Extraer números de cualquier posición en Excel. Imagen del autor.
Ejemplos de copiar y pegar código para casos especiales
Para la sección final, quería darte varias fórmulas adicionales que manejan escenarios diferentes y específicos. Siéntete libre de copiar y pegar, y espero que resuelva cualquier problema específico que puedas tener.
Extrae el primer bloque contiguo de números
Si tu cadena contiene varias secuencias numéricas pero sólo necesitas el primer grupo, prueba esta solución utilizando las funciones LET() y SEQUENCE():
=LET(
txt, A2,
pos, MATCH(TRUE, ISNUMBER(--MID(txt, SEQUENCE(LEN(txt)), 1)), 0),
len, MATCH(FALSE, ISNUMBER(--MID(txt, SEQUENCE(LEN(txt)-pos+1)+pos-1, 1)), 0) - 1,
VALUE(MID(txt, pos, len))
)

Extraer el primer bloque contiguo de una cadena en Excel. Imagen del autor.
Números de extracto entre paréntesis
Para los casos en que los números aparezcan dentro de paréntesis, utiliza
=MID(A2, FIND("(", A2)+1, FIND(")", A2)-FIND("(", A2)-1)

Extrae los números entre paréntesis en Excel. Imagen del autor.
Extraer números después de un carácter específico
Cuando tus datos utilizan dos puntos como delimitador (por ejemplo, "Puntuación: 8"), captura los números con:
=TRIM(MID(A2, FIND(":", A2)+1, LEN(A2)))

Extraer el número después de un carácter especial en Excel. Imagen del autor.
Esto arrastra todo lo que hay después de los dos puntos. Envuelve el resultado con VALUE() si necesitas un valor numérico. Sustituye los dos puntos si tienes un delimitador diferente.
Extrae todos los números y combínalos en un único valor
Para eliminar todos los caracteres no numéricos y combinar todos los caracteres numéricos de una cadena, utiliza esto:
=TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1)*1, ""))

Extraer todos los números y combinarlos en un único valor en Excel. Imagen del autor.
Consejo: En versiones antiguas de Excel, introdúcelo como una fórmula de matriz (Ctrl+Mayús+Intro).
Extraer números con decimales incluidos
Para cadenas numéricas que pueden incluir un decimal (por ejemplo, "Precio: 45,99"), utiliza esta fórmula para conservar tanto los dígitos como el punto decimal:
=TEXTJOIN("", TRUE, IFERROR(
IF(MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1)=".", ".",
IF(ISNUMBER(--MID(A2, ROW(INDIRECT("1:" & LEN(A2))), 1)),
MID(A2, ROW(INDIRECT("1:" & LEN(A1))), 1),
"")
),""))

Extraer números con decimales en Excel. Imagen del autor.
Nota: Esta fórmula supone que sólo hay un punto decimal.
Conclusión
Extraer números de cadenas es una técnica importante para la limpieza de datos. Como analista de datos, te animo a que aprendas a aplicar las distintas fórmulas tratadas en este artículo.
Si quieres avanzar en tus conocimientos de Excel, te recomiendo que sigas nuestros cursos Análisis de datos en Excel y Visualización de datos en Excel para dominar el análisis y la presentación de datos. Prueba también nuestro curso de Modelización Financiera en Excel, que puede abrirte muchas puertas.
Avanza en tu carrera con Excel
Adquiere los conocimientos necesarios para sacar el máximo partido a Excel, sin necesidad de experiencia.
Preguntas frecuentes
¿Cómo puedo extraer números del principio de una cadena en Excel?
Puedes extraer números del principio de una cadena utilizando una combinación de las funciones LEFT() y FIND().
¿Cómo puedo extraer números del final de una cadena en Excel?
Puedes extraer números del final de una cadena utilizando las funciones RIGHT(), LEN(), y FIND().
¿Qué debo hacer si mis números extraídos aparecen como texto en Excel?
Si los números extraídos tienen formato de texto, puedes convertirlos en valores numéricos utilizando funciones como VALUE() o multiplicando el texto por 1.
¿Qué versiones de Excel admiten TEXTJOIN?
La función TEXTJOIN() es compatible con Excel 365 y Excel 2019+.
¿Puedo automatizar el proceso de extracción en Excel?
Sí, puedes automatizar la extracción de números a partir de cadenas utilizando macros VBA o Power Query, lo que resulta útil cuando se trata de grandes conjuntos de datos o tareas repetitivas.
