sábado, 20 de junio de 2020

EXCEL: Dividir texto y números

Excel formula: Split text and numbers

Fórmula genérica

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

Explicación

Para separar texto y números, puede usar una fórmula basada en la función ENCONTRAR, la función MIN y la función LARGO 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(ENCONTRAR({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 "apples30".

Visión general

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

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

En este caso, suponemos que los números y el texto están combinados, y que el número aparece después del texto. Del texto original, que aparece en una celda, desea dividir el texto y los números en celdas separadas, de esta manera:

Original Text Number
Apples30 Apples 30
peaches24 peaches 24
oranges12 oranges 12
peaches0 peaches 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(ENCONTRAR({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:

=IZQUIERDA(A1,position-1)

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

=DERECHA(A1,LARGO(A1)-position+1)

Como funciona la fórmula

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

{8,10,11,7,13,14,15,16,17,18}

Cada número en este conjunto representa la posición de un elemento en el conjunto constante 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 del primer número que aparece en el texto original. En esencia, la función ENCONTRAR 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 para dentro de texto en la función de búsqueda:

B5&"0123456789"

Esta parte de la fórmula concatena cada número posible 0-9 con el texto original en B5. Desafortunadamente, ENCONTRAR 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 suponemos que el número siempre aparecerá segundo en el texto original, funciona bien porque MIN fuerza que solo se devuelva la menor, 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 aún devolverá el texto y la fórmula DERECHA devolverá una cadena vacía.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT