Extraer solo números de un texto (cadena)

Si alguna vez has tenido que extraer solo los números de un texto o cadena de caracteres, ¡estás en el lugar correcto! En este artículo te enseñaremos cómo hacerlo de manera rápida y sencilla. Ya sea que estés trabajando en un proyecto de programación o simplemente necesites filtrar datos numéricos, estos consejos te serán de gran ayuda. ¡Sigue leyendo para descubrir cómo extraer solo los números de un texto y simplificar tu trabajo!

En Excel, puede usar fórmulas para extraer el número de un valor con texto y números combinados. En el siguiente ejemplo, hemos utilizado una fórmula para obtener 1984 del valor «TPS1984».

Extraer solo números de un texto (cadena)
=TEXTJOIN("",TRUE,IFERROR((MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)*1),""))

En este tutorial, entenderemos esta fórmula en detalle. Y para entenderlo, necesitamos dividirlo en partes:

  1. Primero, tenemos la función LEN para obtener el recuento de caracteres en el valor.
    Extraer solo números de un texto (cadena)
  2. Después de eso, INDIRECT usa una referencia de celda usando 1 y 7 (devuelta por LEN).
    Extraer solo números de un texto (cadena)
  3. A continuación, la función FILA utilizará INDIRECTO y devuelve una matriz de números que comienza en 1 y termina en 7.
    Extraer solo números de un texto (cadena)
  4. Ahora, MID usará esta matriz y devolverá una nueva con los valores de la celda a la que hizo referencia.
    Extraer solo números de un texto (cadena)
  5. A continuación, tenemos una fórmula de multiplicación simple para multiplicar la matriz por 1. ¡Con esta multiplicación simple, obtendrás una nueva matriz donde tendrás #VALOR! El error de valores de texto y números permanecerá intacto.
    Extraer solo números de un texto (cadena)
  6. Desde aquí, la función IFERROR convertirá los valores de error en valores en blanco.
    Extraer solo números de un texto (cadena)
  7. Y al final, TEXTJOIN combinará los valores y solo tendrás números en el resultado.
    Extraer solo números de un texto (cadena)

La fórmula anterior solo funciona para la versión 2019 y superior de Excel. Es porque estamos usando TEXTJOIN, que no está disponible en versiones anteriores.

Si desea valor para una parte de la fórmula, seleccione esa parte y presione la tecla F9 del acceso directo.

TEXTJOIN es una función volátil que cambia de valor cuando actualiza cualquier celda de la hoja de trabajo. Puede hacer que su libro de trabajo sea un poco lento.

Pero, ¿qué pasa si estoy usando una versión anterior (2007, 2010,2013, 2016)?

Si utiliza las versiones anteriores, deberá utilizar una fórmula diferente. Una fórmula como la siguiente:

=IF(SUM(LEN(A1)-LEN(SUBSTITUTE(A1, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A1, LARGE(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("$1:$"&LEN(A1))),1))* ROW(INDIRECT("$1:$"&LEN(A1))),0), ROW(INDIRECT("$1:$"&LEN(A1))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A1)))/10),"")
=SUMPRODUCT(MID(0&A1,LARGE(INDEX(ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))*ROW(INDIRECT("1:"&LEN(A1))),0),ROW(INDIRECT("1:"&LEN(A1))))+1,1)*10^ROW(INDIRECT("1:"&LEN(A1)))/10)

Ambas fórmulas anteriores funcionan bien con los diferentes tipos de valores. Lo he probado de la siguiente manera.

Extraer solo números de un texto (cadena)

En la celda A1, arriba tenemos un valor complejo que consta de texto, números y símbolos y solo tenemos números en el resultado.

Error 403 The request cannot be completed because you have exceeded your quota. : quotaExceeded





Extraer solo números de un texto (cadena) – Preguntas frecuentes

Preguntas frecuentes: Extraer solo números de un texto (cadena)

En este artículo, resolveremos preguntas frecuentes relacionadas con el proceso de extracción de números de un texto o cadena en lenguaje de programación.

¿Cómo puedo extraer solo números de un texto en Python?

En Python, puedes utilizar expresiones regulares para extraer solo los números de un texto. Para hacerlo, puedes importar el módulo re y utilizar la función findall(). Aquí tienes un ejemplo:

import re

texto = "Hola 123 mundo 456"
numeros = re.findall(r'\d+', texto)
print(numeros)
  

Este código imprimirá una lista de los números encontrados en el texto:

[123, 456]

¿Cómo puedo extraer solo números de un texto en JavaScript?

En JavaScript, también puedes utilizar expresiones regulares para extraer solo los números de un texto. Aquí tienes un ejemplo:

var texto = "Hola 123 mundo 456";
var numeros = texto.match(/\d+/g);
console.log(numeros);
  

Este código imprimirá una matriz de los números encontrados en el texto:

["123", "456"]

¿Cómo puedo extraer solo números de un texto en PHP?

En PHP, puedes utilizar la función preg_match_all() para extraer solo los números de un texto. Aquí tienes un ejemplo:

$texto = "Hola 123 mundo 456";
preg_match_all('/\d+/', $texto, $numeros);
print_r($numeros[0]);
  

Este código imprimirá un array con los números encontrados en el texto:

Array
(
    [0] => 123
    [1] => 456
)
  

¿Existen otras formas de extraer números de un texto en otros lenguajes de programación?

Sí, además de los ejemplos mencionados anteriormente, existen diversas bibliotecas y métodos disponibles para extraer números de un texto en diferentes lenguajes de programación. Algunos lenguajes populares como C#, Ruby y Java también ofrecen soluciones similares utilizando expresiones regulares o funciones específicas.

Para obtener más información y aprender cómo extraer números de texto en estos lenguajes, consulta los siguientes recursos:

  1. Extraer un número de una cadena en C# (Microsoft)
  2. Método scan en Ruby (Ruby-Doc.org)
  3. Clase RegexPattern en Java (Oracle)

Recuerda que cada lenguaje puede tener diferentes enfoques y métodos para extraer números de un texto, por lo tanto, es importante consultar la documentación oficial y recursos relevantes para cada caso específico.


Deja un comentario