sábado, 25 de agosto de 2018

FUNCION EN EXCEL QUE RETORNA LOS NUMEROS DE UNA CADENA DE TEXTO


Excel tiene muchas funciones que podemos usar dependiendo de nuestra necesidad, sin embargo puede ser que  para casos específicos no encontremos la función que requerimos. Pensando en esto se nos ofrece la posibilidad de crear nuestras propias funciones. Vamos a crear una función en Excel que nos permita extraer los campos numéricos dentro de una cadena de texto, por ejemplo si tenemos la cadena de texto “Agosto2018” la función que crearemos nos retornara el valor 2018. Con este ejemplo también aprenderemos el uso de algunas funciones de cadena.

En las macros que hemos creado hasta ahora siempre usamos la palabra Sub para iniciar los procedimientos. Como  lo que estamos creando son funciones usaremos la palabra Function.

La sintaxis es: palabra Function nombre de la función (parámetros de la función). Para el ejemplo el nombre de la función será numbers y recibirá como parámetro un texto.



Definiremos tres variables: longitud de tipo entero para almacenar la longitud del texto que llega por parámetro, un contador  de tipo entero que usaremos para recorrer la cadena de texto recibida por parámetro  y una variable de tipo texto que nos servirá para almacenar los datos que retorna la función.


CALCULAR LA LONGITUD DE UNA CADENA


Lo primero que debemos hacer es calcular la longitud de la cadena, para esto usamos la función Len , que nos retorna el número de elementos que contiene una cadena de texto.






Hasta ahora nuestra función esta así:




RECORRER LA CADENA


Debemos recorrer la cadena y validar cada elemento para saber si es numérico. Para recorrer la cadena usaremos un ciclo for  desde 1 hasta la longitud de la cadena, la cual calculamos en el punto anterior.




Hasta ahora nuestra función está así:










SUBCADENA DE UN TEXTO


Debemos validar si cada elemento de la cadena es numérico, para esto extraemos posición por posición la subcadena  del texto recibido por parámetro, utilizando la función MID.




Con esta instrucción estamos indicando que necesitamos ver el valor que tiene la variable text a partir de la posición i una posición.

VALIDAR SIN UN VALOR ES NUMÉRICO


Para saber si el texto que hemos extraído con la palabra reservada MID es numérico usaremos la función IsNumeric .




La función IsNumeric retorna verdadero o falso, si el substring es numérico retorna verdadero de lo contrario falso.

Nuestra función estaría así:










CONCATENAR UNA CADENA


A medida que recorremos la cadena de texto y encontramos números debemos ir  uniéndolos en una variable.
Para concatenar usaremos (&)




Con esto estamos almacenando en la variable number lo que contiene la misma con el subtring de la cadena.
Finalmente nuestra función debe retornar la variable concatenada, esto lo conseguimos con la siguiente instrucción




Con esto terminamos y este sería el código de nuestra función
















Ahora podemos utilizar en la hoja de cálculo la función numbers.