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í:
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