Extraer Números de Una Celda en Excel - Excel Total

16
Extraer números de una celda en Excel En ocasiones tenemos celdas en nuestras hojas de Excel que contienen una cadena de texto alfanumérica y necesitamos extraer solamente la parte numérica contenida dentro de dicha cadena. La solución a este problema la obtendremos en dos pasos. 1. Encontrar la posición inicial del número dentro del texto. 2. Encontrar la longitud del número a extraer. Por ejemplo, para extraer los números de una celda que tiene el texto ABC4567DEF debemos encontrar la posición del primer número que es la posición 4 y a partir de esa posición extraer 4 caracteres. 1. Encontrar la posición inicial del número Comenzamos por encontrar el primer carácter dentro de la cadena que sea un dígito entre cero y nueve. Este procedimiento lo haremos utilizando tres funciones. La primera función a utilizar será la función ENCONTRAR donde el primer argumento será una matriz que contenga los nueve dígitos buscados: =ENCONTRAR({0,1,2,3,4,5,6,7,8,9},A1) Es muy importante que utilices el separador de listas configurado en tu equipo. Yo utilizo la coma (,) pero es probable que tu debas utilizar el punto y coma (;) para crear tanto la matriz de dígitos como para separar los argumentos de la función. Al terminar de escribir la fórmula pulsaré la combinación de teclas Ctrl + Mayús + Entrar ya que ésta es una fórmula matricial . Si la cadena de texto que tenemos en la celda A1 es “ABC4567DEF”, entonces esta fórmula nos devolverá una matriz con diez resultados: Búscanos en Facebook Excel Total A 48 992 personas les gusta Excel Total . Plug-in social de Facebook Me gusta INICIO FUNCIONES ACERCA

description

excel avansado

Transcript of Extraer Números de Una Celda en Excel - Excel Total

Page 1: Extraer Números de Una Celda en Excel - Excel Total

Extraer números de unacelda en Excel

En ocasiones tenemos celdas en nuestras hojas de Excel que contienen unacadena de texto alfanumérica y necesitamos extraer solamente la partenumérica contenida dentro de dicha cadena. La solución a este problema laobtendremos en dos pasos.

1. Encontrar la posición inicial del número dentro del texto.2. Encontrar la longitud del número a extraer.

Por ejemplo, para extraer los números de una celda que tiene el textoABC4567DEF debemos encontrar la posición del primer número que es laposición 4 y a partir de esa posición extraer 4 caracteres.

1. Encontrar la posición inicial del número

Comenzamos por encontrar el primer carácter dentro de la cadena que seaun dígito entre cero y nueve. Este procedimiento lo haremos utilizando tresfunciones. La primera función a utilizar será la función ENCONTRAR donde elprimer argumento será una matriz que contenga los nueve dígitos buscados:

=ENCONTRAR({0,1,2,3,4,5,6,7,8,9},A1)

Es muy importante que utilices el separador de listas configurado en tuequipo. Yo utilizo la coma (,) pero es probable que tu debas utilizar el punto ycoma (;) para crear tanto la matriz de dígitos como para separar losargumentos de la función. Al terminar de escribir la fórmula pulsaré lacombinación de teclas Ctrl + Mayús + Entrar ya que ésta es una fórmulamatricial. Si la cadena de texto que tenemos en la celda A1 es“ABC4567DEF”, entonces esta fórmula nos devolverá una matriz con diezresultados:

Búscanos en Facebook

Excel Total

A 48 992 personas les gusta Excel Total.

Plug-in social de Facebook

Me gusta

INICIO FUNCIONES ACERCA

Page 2: Extraer Números de Una Celda en Excel - Excel Total

Para cada dígito que hemos buscado obtendremos un resultado y por esarazón los primeros cuatro elementos del resultado son el error #¡VALOR! quesignifica que la función no encontró los dígitos 0,1,2 y 3. Sin embargo, paralos dígitos 4,5,6, y 7 la función ENCONTRAR nos devuelve su posición dentrode la cadena. Para los dígitos 8 y 9 obtenemos de nuevo un error porque nose encuentran dentro de la cadena.

Si eres nuevo en Excel, es probable que el tema de fórmulas matriciales seaun tanto avanzado para ti, pero continúa leyendo porque al final tendremos lafórmula exacta que debes utilizar para resolver este problema.

Eliminar los errores del resultado

La segunda función que utilizaremos será la función SI.ERROR de maneraque podamos eliminar los errores contenidos en la matriz de resultados. Encaso de que la función SI.ERROR encuentre el error #¡VALOR! le pediremosque lo sustituya por una cadena de texto vacía:

=SI.ERROR(ENCONTRAR({0,1,2,3,4,5,6,7,8,9},A1),"")

De esta manera, la matriz devuelta ya no contiene los errores, sino que en sulugar tenemos una cadena de texto vacía donde antes aparecía el error#¡VALOR!:

Sigue a Excel Total

Page 3: Extraer Números de Una Celda en Excel - Excel Total

Ahora que ya tenemos la matriz de resultados formada solo por números ycadenas vacías, podemos utilizar la función MIN para conocer la posiciónmenor dentro de la cadena donde se encuentra un dígito.

Obtener el valor mínimo

Solo debemos agregar la función MIN a la fórmula anterior para obtener laposición donde comienza el número dentro de la cadena alfanumérica.

=MIN(SI.ERROR(ENCONTRAR({0,1,2,3,4,5,6,7,8,9},A1),""))

Ya que esta fórmula me devuelve un solo resultado, será la fórmula queintroduciré en la celda B2 para obtener la posición inicial. Recuerda quedebemos pulsar las teclas Ctr + Mayús + Entrar al terminar de introducir lafórmula.

Este resultado es correcto porque nos indica que el primer dígito estáubicado en la posición 4 de nuestra cadena alfanumérica. Con esto hemossolucionado la primer parte del problema, ahora solo nos resta saber lacantidad de dígitos a extraer.

2. Encontrar la longitud del número

Para obtener la cantidad de dígitos a extraer utilizaremos también tresfunciones de Excel y el método para obtener la solución será utilizar tambiénuna fórmula matricial. El primer paso es obtener cada carácter de maneraindividual con la función EXTRAE:

Page 4: Extraer Números de Una Celda en Excel - Excel Total

=EXTRAE(A1,FILA($1:$99),1)

La parte más interesante de esta fórmula es el segundo argumento de lafunción EXTRAE donde debemos colocar la posición del carácter quedeseamos extraer. Para ese segundo argumento utilizo la función FILA con elrango $1:$99 lo cual hará que la función EXTRAE me devuelva cada carácterde la cadena original como parte de una matriz hasta un máximo de 99caracteres.

He colocado el número 99 pensando que no tendremos una cadena de textomayor a esa longitud, pero si tienes una cadena más grande será suficientecon remplazar el número 99 por un número más grande. Cada elemento dela matriz de resultados será de tipo texto pero necesito convertirlo en númeropara poder contar cada elemento numérico correctamente, por lo que deboagregar una multiplicación por uno a la fórmula anterior:

=1*EXTRAE(A1,FILA($1:$99),1)

Al hacer la multiplicación, los valores en la matriz de resultados se modifican.Aquellos caracteres que no son números devuelven un error, pero aquellosque sí son números permanecen con su valor numérico dentro de la matriz:

Page 5: Extraer Números de Una Celda en Excel - Excel Total

Esta multiplicación era necesaria porque ahora utilizaré la función CONTARpara saber cuántos elementos de la matriz de resultado son números. Lafórmula a utilizar es la siguiente:

=CONTAR(1*EXTRAE(A1,FILA($1:$99),1))

No olvides que debemos pulsar las teclas Ctrl + Mayús + Entrar al terminarde introducir la fórmula. Yo colocaré esta fórmula en la celda C1 dondeobtengo el siguiente resultado:

De esta manera concluimos con la segunda parte de la solución. Ahora solonos resta utilizar ambos resultados para extraer el número completo.

Extraer números de una celda en Excel

Ya hemos solucionado la parte más compleja de este problema. Solodebemos utilizar la función EXTRAE para extraer los números de la cadenade texto que se encuentra en la celda A1. La fórmula es muy sencilla:

Page 6: Extraer Números de Una Celda en Excel - Excel Total

Para probar que esta técnica funciona para cualquier otra cadenaaplicaremos nuestras fórmulas a varias celdas que contienen una cadenaalfanumérica:

Para finalizar te mostraré la fórmula integrada, es decir, la fórmula que nosayuda a extraer números de una celda en un solo paso y que essimplemente la integración de las fórmulas desarrolladas anteriormente:

=EXTRAE(A2,MIN(SI.ERROR(ENCONTRAR({0,1,2,3,4,5,6,7,8,9},A2),"")),CONTAR(1*EXTRAE(A2,FILA($1:$98),1)))

Recuerda que esta es una fórmula matricial por lo que debemos pulsar lacombinación de teclas Ctrl + Mayús + Entrar. El resultado será el mismo quehemos obtenido con las fórmulas anteriores.

Como puedes observar en la columna E, los números extraídos siguensiendo texto. Si deseas convertirlos en números se puede multiplicar elresultado de la fórmula anterior por 1 de manera puedan ser incluidos en

Page 7: Extraer Números de Una Celda en Excel - Excel Total

cálculos numéricos. Es importante mencionar que esta fórmula funcionasolamente en caso de tener un solo número (de varios dígitos) dentro de unacadena alfanumérica y no considera los puntos decimales que pudiera tener.

Este artículo se ha enfocado en encontrar una solución utilizando funcionesde Excel pero es posible obtener resultados similares utilizando macros locual seguramente será el tema de alguna publicación futura. Mientras tantodescarga el libro de trabajo y experimenta con los ejemplos desarrollados eneste artículo.

Artículos relacionadosExtraer contenido de una celda en Excel

Por Moisés Ortíz el 21 de febrero del 2013.

49 pensamientos en “Extraer números de unacelda en Excel”

jairo

Tus articulos son excelentes.Me gustaria que escribieras un post donde nos enseñes una macropara extraer datos de una pagina web y pegarlos en nuestraplanilla de excel. es decir automatizar un proceso

Horacio Carmona

¡Gracias! esto es fabuloso!!!!!!!

José Miguel

EXCEL-ENTE…. MUCHAS MUCHAS GRACIAS.

paco

Page 8: Extraer Números de Una Celda en Excel - Excel Total

Excelente..es de mucha utilidad, este tipo de informacion ..gracias…

Eduardo Manzo

Moisés, es una fórmula sumamente interesante y me servirá parausar las fórmulas matriciales en mi trabajo diario. Sin embargo, porel uso que haces de la función EXTRAE, los números a recuperardeben estar colocados de manera continua. Pero, por laspeculiaridades de la información que manejo, ¿Hay alguna formade extraer dos cifras que se encuentren en una sola celda ypoderlas sumar?Gracias por tu trabajo y tu respuesta

Moisés Ortíz Autor

Hola Eduardo, lamentablemente la solución presentadaen este artículo solo aplica con un solo número (dedígitos contínuos). Un problema como el tuyo seresolvería de una manera más “fácil” utilizando unamacro. Voy a apuntarlo en mi lista de sugerencias paraescribir una solución alterna a este artículo usando VBAy que considere múltiples números dentro de la mismacadena.

Lázaro

Excelente explicación, hay una diferencia muy grande en ponerfríamente la formula final a ir explicándola paso a paso como tú nosla has brindado, felicidades.

SaludosLázaro.

Johnny

Muchas gracias, esto ayuda mucho.

Rosa Guacho

GRACIAS por su exelente apoyo.Por favor Me gustaria que nos enseñe una macro para comvertir unvalor numérico a texto.

Page 9: Extraer Números de Una Celda en Excel - Excel Total

Moisés Ortíz Autor

Hola Rosa, puedes utilizar una macro que publiqué hacealgún tiempo. Te dejo el vínculo a ese artículo:http://exceltotal.com/convertir-numeros-a-letras-en-excel/

Erwin Vera

Excelente…mil gracias!

Luis Torres

De verdad esta muy detallada la formula y la explicación esta delujo, felicidades!!!

jeans

excelente

Oscar

Moises, gracias por tus lecciones: siempre me son de muchaayuda. Sólo una pregunta. ¿Esto funciona con M.Excel 2007? Porque, desde “1. Encontrar la posición inicial del número”, me dasiempre en la celda de la fórmula el error “#¡VALOR!”Gracias

Moisés Ortíz Autor

Hola Oscar, todas las funciones utilizadas en la fórmulaestán disponibles en Excel 2007. El error debe ser porotra razón.

Israel

Excelente, felicidades por compartir tu conocimiento.

JESUS MELENDEZ

GUARDO CELOSAMENTE, TODAS LAS INFORMACIONES DE

Page 10: Extraer Números de Una Celda en Excel - Excel Total

CORTE PEDAGÓGICO QUE ME ENVÍAN PARA QUE YOAPRENDA Excel. Mil Gracias

Ayden Leon

Muy bueno el ejemplo, Felicidades!!!, me gustaria saber como seprodría extraer este ejemplo. OPT5324G234, ya q en este ejemplose encuentran los numero en diferentesposiciones…..Gracias….por la info..

Moisés Ortíz Autor

Hola Ayden, tal como respondí a “Eduardo Manzo” en uncomentario anterior, la solución propuesta en esteartículo no funciona para extraer números en diferentesposiciones dentro de la misma cadena. Espero publicarpronto una solución para esta variante.

Eliezer Hilario

Excelente artículo.Me has resuelto un gran problema.Gracias.

federico

te hago una pregunta ya que veo que hay algo parecido, tengo unalista gigante de excel de numeros como por ejemplo:

456332;154009124154322118;155667900etc.. ahora lo que quiero yo es no solo quitar el punto y coma (” ; “)sino borrar el numero que hay al principio para que me quede154009124155667900

hay alguna formula para hacer eso?

Moisés Ortíz Autor

Hola Federico, lo puedes hacer con la siguiente fórmula:=EXTRAE(A1,ENCONTRAR(“;”,A1)+1, LARGO(A1))

Carlos

Page 11: Extraer Números de Una Celda en Excel - Excel Total

Esta excelente la formula…..pero como lehago si lo que quiero eliminar es lo que siguedespues del “;”….es decir, que quedara así:456332;154009124 = 456332154322118;155667900 = 154322118Que básicamente es contrario a Largo( ).Mil Gracias por tu respuesta. Saludos!!

Moisés Ortíz Autor

Hola Carlos, en ese caso solodebes extraer los caracteres de laizquierda hasta el “;”. Puedes utilizarla siguiente fórmula:=IZQUIERDA(A1, ENCONTRAR(“;”,A1)-1)

Carlos

Excelente!!!!……MilGracias!!!!

javier

Muchísmas gracias de nuevo Moisés.Tus posts son de muchísima utilidad para mucha gente, incluído yo.Como decía un compañero…para cuando un post sobre extraerinformación contenida en una web y pasarla directamente al excel?Quizás sea mucho pedir

muchas gracias

Moisés Ortíz Autor

Hola Javier, Gracias por tu comentario. De dejo unvínculo a un artículo sobre importación de datos con unaconsulta Web:http://exceltotal.com/importar-datos-con-una-consulta-web/

Felipe Anaya

Muchas gracias, me ayudo mucho a separar una tabla enorme de

Page 12: Extraer Números de Una Celda en Excel - Excel Total

datos. Que bueno que existe gente como Ustedes.

Felipe Ceballos

Excelente información.Gracias por el aporte fue de gran ayuda.

Saludos

carlos

Estoy haciendo una tabla para realizar cálculos entre fechas, enuna celda tengo el número 551019 (aammdd) que es el resultadode la resta de dos fechas, aplicando la función SIFECHA. Ahoradeseo separar en tres columnas distintas los años, meses y días,he probado con la opción de “texto en columnas” y no funciona.¿me puedes ayudar?.Saludos

Moisés Ortíz Autor

Hola Carlos, si el cálculo lo hiciste con la funciónSIFECHA entonces el número 551019 representa el 20de agosto del año 3408. No me queda claro porqué lointerpretas como (aammdd). En todo caso, para obtenerel año, mes y día no se puede hacer con la opción “textoen columnas” ya que una fecha no es un texto sino unnúmero. Te sugiero utilizar la función TEXTO y para esode dejo un artículo que explica cómo hacerlo:http://exceltotal.com/extraer-informacion-de-una-fecha/

NALLELY

Como le hago para separar 150021048001 / 372905 y quedara =150021048001 por pavor

Moisés Ortíz Autor

Hola Nallely, utiliza la siguiente fórmula:=IZQUIERDA(A1, ENCONTRAR(” /”,A1))

Mario Morales

Page 13: Extraer Números de Una Celda en Excel - Excel Total

Excelente informacion.Moisés como le hago para sacar en numero de IP de un texto.Ejemplo:Barcelona-192.168.150.5-Correo-Electronico

Moisés Ortíz Autor

Hola Mario, te recomiendo utilizar la función EXTRAE.Si todas las direcciones IP están delimitadas por unguión medio “-”, entonces puedes utilizar la siguientefórmula:=EXTRAE(A1, ENCONTRAR(“-”, A1) + 1,ENCONTRAR(“-”, A1, ENCONTRAR(“-”, A1)+1) –ENCONTRAR(“-”, A1)-1)

Eduardo Villa

Hola gracias por el Tema es muy bueno, lo que yo busco es sabersi una columna que contiene 10 dígitos de números telefónicosesta formada solo de números, es decir necesito comprobar queno vaya ninguna letra o punto o coma, etc. como podría hacerlo?de antemano muchas gracias.

Moisés Ortíz Autor

Hola Eduardo, utiliza la función ESNUMERO para validarque no existan letras. Para buscar la existencia depuntos o comas usa la función ENCONTRAR, sidevuelve error quiere decir que no existen. Puedes unirtodas las evaluaciones con la función Y, por ejemplo:=Y(ESNUMERO(A5), ESERROR(ENCONTRAR(“,”,A5)),ESERROR(ENCONTRAR(“.”,A5)))

Solamente si la función Y devuelve VERDADERO querrádecir que dicho valor contiene solamente números. Esimportante que los valores a evaluar tengan formato detexto, o de lo contrario la fórmula no detectaráadecuadamente el punto o la coma.

SANDRA

Hola, estoy trabajando con este ejercicio pero tengo un duda, al irescribiendo la función ENCONTRAR , debo teclear la llave quequeda entre el paréntesis de apertura y el cero así como la llaveentre el 9 y el paréntesis de cierre?Lo tecleo así=Encontrar({0,1,2,3,4,5,6,7,8,9}),A2) y luego doy

Page 14: Extraer Números de Una Celda en Excel - Excel Total

Ctrl+Mayusc+Entery me da error… #¡valor!En la sintaxis veo que si me escribe las llaves inicial y final¿Qué estoy haciendo mal?Gracias

Moisés Ortíz Autor

Hola Sandra, estás haciendo todo bien.El hecho de que obtengas el error #¡VALOR! solo quieredecir que no se ha encontrado ningún número 0 (cero)dentro de la celda A2.

Luis

Moisés si tengo la siguiente situación:JR SANTA ROSA 610AV PROGRESO 458CA JUAN DE ORTIZ S/N¿Cómo hago para extraer sólo el nombre de las ubicaciones, esdecir: SANTA ROSA, PROGRESO y JUAN DE ORTIZ?Gracias por tu ayuda!

Moisés Ortíz Autor

Hola Luis, utiliza la función EXTRAE y para su segundoargumento deberás indicar la posición donde inicia elnombre de la ubicación que puedes encontrar de lasiguiente manera:=ENCONTRAR(” “, A1)+1Lo más complicado será obtener el tercer argumento dela función EXTRAER. Para eso se me ocurra encontrarel último espacio en blanco que es lo que delimita el finaldel nombre de las ubicaciones. Para encontrar laposición del último espacio utiliza la fórmula descrita enel siguiente artículo:http://exceltotal.com/encontrar-caracteres-de-derecha-izquierda-en-excel/

Una vez encontrado el último espacio será cuestión derestarle la posición del primer espacio para obtener lalongitud en caracteres del nombre de la ubicación y quesería el tercer argumento de la función EXTRAE.

Jorge Arturo

Respetado Moises: Tengo un listado de texto en una sola columna

Page 15: Extraer Números de Una Celda en Excel - Excel Total

excel con palabras que utilizan las 5 vocales una sola vez, comotambién palabras que utilizan mas de una vez una o varias vocales;Ejemplo estudiamos, estudiábamos; averiguo, averiguamos;acudiremos, acudiéramos; escudriñamos, escudriñaremos. Quierodespejar en un listado aparte ó detectar y señalizar, sólo las queutilizan una sola vez las 5 vocales del español.

Sé que puedes darme claridad en esto y se lo agradezco.

Responder

Moisés Ortíz Autor

Hola Jorge, esa no es una tarea sencilla ya que esnecesario analizar carácter por carácter para saber si setrata de una vocal. Sería muy complicado explicarte lasolución por este comentario, pero te recomiendo leer unartículo, que no habla sobre vocales sino sobre números,pero es posible modificar la formula descrita en dichoartículo para que funcionen con vocales:http://exceltotal.com/extraer-numeros-de-una-celda-en-excel/

Una vez que hayas extraído las vocales podrás medir lalongitud de dicha cadena con la función LARGO yaquellas que tengan una longitud de 1 serán las palabrasque utilicen una sola vocal.

karla

Hola!!es de gran utilidad esta formula, pero en ingles son diferentes lasfunciones en excel en expañol usas EXTRAER, pero en InglesEXTRACT, no exixte.cual es la funcion para excel en ingles?

Moisés Ortíz Autor

Hola Karla, el equivalente de la función EXTRAE eninglés es la función MID.

Johanna

Hola, Precisamente estoy intentando utilizar los numeros queextrai, para incluirlos en calculos numericos, y segui tus pasos sinembargo me sale el error. Este dato es obtenido por datosexternos, para mantener actualizada la divisa, todo sale en una

Page 16: Extraer Números de Una Celda en Excel - Excel Total

sola celdaCompra Bolívares: 28.50Asi que solo necesito los numeros=EXTRAE(A1;19;26) y como resultado me da el 28.50 pero no hepodido usarlo en el calculo.Muchisimas Gracias por tus tutorias

Moises Ortiz Autor

Hola Johanna, se debe a que al extraer los números aúnes una cadena de texto y debes convertirla a un valornumérico. Por ejemplo:=VALOR(EXTRAE(A1;19;26))

No me queda muy claro porque colocas 26 como eltercer argumento, pero si eso te está funcionando bienno hay problema, lo importante es que utilices la funciónVALOR para convertir al cadena en un valor numérico demanera que lo puedas utilizar en otro cálculo.

JAIR CISNEROS I

Excelente todo lo que nos a compartido Moisés, te felicito porquenos as ayudado enorme mente sin ningún interés,adicional a estohe tratado de ajustar la formula de extraer a una que yo necesito yno ha sido posible hacerla, te agradecería si me puedes ayudarcon esa. Te explico, necesito extraer el ultimo dígito después de unguion. ejemplo 13485258233-8 necesito extraer el numero ocho 8.Muchas gracias por tu ayuda.Saludos,JC

Moises Ortiz Autor

Hola Jair, si dicho dígito siempre está al final seríasuficiente utilizar la función DERECHA(A1, 1), pero siquieres hacer con la función EXTRAER, puedes utilizarla siguiente fórmula:=EXTRAE(A1, ENCONTRAR(“-”,A1)+1, 1)