Fórmula de Excel: dividir texto y números -

Tabla de contenido

Fórmula genérica

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))

Resumen

Para separar texto y números, puede utilizar una fórmula basada en la función BUSCAR, la función MIN y la función LEN con la función IZQUIERDA o DERECHA, dependiendo de si desea extraer el texto o el número. En el ejemplo que se muestra, la fórmula en C5 es:

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),B5&"0123456789"))

que devuelve 7, la posición del número 3 en la cadena "manzanas30".

Explicación

Visión general

La fórmula parece compleja, pero la mecánica es bastante simple.

Como con la mayoría de fórmulas que dividen o extraen texto, la clave es ubicar la posición de lo que está buscando. Una vez que tenga el puesto, puede utilizar otras funciones para extraer lo que necesita.

En este caso, asumimos que los números y el texto están combinados y que el número aparece después del texto. Desde el texto original, que aparece en una celda, desea dividir el texto y los números en celdas separadas, así:

Original Texto Número
Manzanas30 Manzanas 30
melocotones24 melocotones 24
naranjas12 naranjas 12
melocotones0 melocotones 0

Como se indicó anteriormente, la clave en este caso es ubicar la posición inicial del número, lo que puede hacer con una fórmula como esta:

=MIN(FIND((0,1,2,3,4,5,6,7,8,9),A1&"0123456789"))

Una vez que tenga la posición, para extraer solo el texto, use:

=LEFT(A1,position-1)

Y, para extraer solo el número, use:

=RIGHT(A1,LEN(A1)-position+1)

En la primera fórmula anterior, estamos usando la función ENCONTRAR para ubicar la posición inicial del número. Para find_text, estamos usando la constante de matriz (0,1,2,3,4,5,6,7,8,9), esto hace que la función FIND realice una búsqueda separada para cada valor en la constante de matriz. Dado que la constante de matriz contiene 10 números, el resultado será una matriz con 10 valores. Por ejemplo, si el texto original es "manzanas30", la matriz resultante será:

(8,10,11,7,13,14,15,16,17,18)

Cada número de esta matriz representa la posición de un elemento en la constante de matriz dentro del texto original.

A continuación, la función MIN devuelve el valor más pequeño de la lista, que corresponde a la posición en del primer número que aparece en el texto original. En esencia, la función FIND obtiene todas las posiciones numéricas, y MIN nos da la primera posición numérica: observe que 7 es el valor más pequeño en la matriz, que corresponde a la posición del número 3 en el texto original.

Quizás se esté preguntando acerca de la construcción extraña de within_text en la función de búsqueda:

B5&"0123456789"

Esta parte de la fórmula concatena todos los números posibles del 0 al 9 con el texto original en B5. Desafortunadamente, FIND no devuelve cero cuando no se encuentra un valor, por lo que esta es solo una forma inteligente de evitar errores que podrían ocurrir cuando no se encuentra un número.

En este ejemplo, dado que asumimos que el número siempre aparecerá en segundo lugar en el texto original, funciona bien porque MIN fuerza que se devuelva solo la más pequeña, o la primera aparición, de un número. Siempre que aparezca un número en el texto original, se devolverá esa posición.

Si el texto original no contiene ningún número, se devolverá una posición "falsa" igual a la longitud del texto original + 1. Con esta posición falsa, la fórmula IZQUIERDA anterior todavía devolverá el texto y la fórmula DERECHA devolverá una cadena vacía ("").

Buenos enlaces

Fórmula de Rick Rothstein en Mr Excel

Articulos interesantes...