Crear funciones personalizadas en Excel

Una función, primeramente, es una fórmula predefinida en Excel que opera sobre uno o más argumentos. Por ejemplo: SUMA, PROMEDIO, BUSCARV, son funciones propias de la aplicación que cumplen con un objetivo específico. En esta ocasión veremos cómo crear funciones personalizadas en Excel, es decir, con nombres que nosotros mismo definamos. Crearemos tres funciones, obtenerComentario, colorCelda y calculoAreaCirulo.

Primeramente creamos un libro de Excel y nos vamos con el atajo Ctlr + F11 al IDE de Visual Basic para aplicaciones. Dentro del editor, en la parte izquierda ubicamos el VBAProject con el nombre de nuestro archivo. Damos click derecho e insertamos un módulo nuevo. Al crear el módulo nuevo, nos aparecerá un área en blanco donde escribiremos nuestras funciones.

image

Dentro del área en blanco, escribiremos las siguientes líneas. Recordemos que el texto verde son los comentarios explicativos:

Function obtenerComentario(celda As Range)
obtenerComentario = celda.Comment.Text
'Esta función nos permitirá obtener el comentario de la celda en cuestión
End Function
'
Function colorCelda(celda As Range)
colorCelda = celda.Interior.ColorIndex
'Esta función nos permitirá saber el número de índice del color de la celda.
'Útil para ordenar por colores.
End Function
'
Function calculoAreaCirculo(radio As Long)
calculoAreaCirculo = 3.1416 * radio ^ 2
'Esta función nos permite calcular el área de un círculo.
'El único argumento que nos pide es el radio, ya que el PI y el cuadrado vienen dentro de la misma función
End Function

Para definir que es una función, utilizamos la palabra reservada Function. Y los argumentos aparecen dentro de los paréntesis.

Para poder utilizar estas funciones en Excel, basta con escribir dentro del mismo archivo el nombre de la función creada y entre paréntesis la celda que queramos calcular. Por ejemplo:

=obtenerComentario(A1)

=colorCelda(A2)

=calculoAreaCirculo(A3)

En la celda A1 hay agregado un comentario, la celda A2 tiene color de fondo y en la celda A3 está el valor del radio del círculo.

:: Descargar el ejemplo

You may also like...

12 Responses

  1. humberto says:

    Hola, yo tengo algunas funciones personalizadas de excel y las uso bastante. Pero quisiera que al ingresar la fórmula por teclado en alguna celda cualquiera, excel me muestre los argumentos de la misma…
    ¿se puede hacer eso?

    gracias

    • sergioacamposh says:

      Se puede, pero tendrá que ser mediante programación de macros. De qué tipo son tus fórmulas/funciones ??

  2. Andres says:

    Sergio Buenos dias, me parece muy interesante el articulo sobre las funciones personalizadas. Sería bueno que ahondaran mas en la pregunta de Humberto ya que tambien me gustaria saber. ¿Como colocarle los argumentos a las funciones personalizadas en Excel?

    Muchas Gracias.

  3. Jorge says:

    Saludos, la creacion de funciones personalizadas en Excel es bastante fácil, dejo un ejemplo:

    Function Producto(a, b, c)
    Producto = a*b*c
    End Function

    En la primera linea indicas el nombre de tu función “Producto”
    Entre parentesis ingresas los parametros que debe contener a,b y c.
    En la linea 2 tienes que indicar que calculará tu funcion, en este caso calculará a*b*c

    Espero les ayude,

  4. JOSÉ AGUERO says:

    FELIZ AÑO PARA TODOS. Buenas Tardes. Quiero contar los datos de un rango de una determinada persona de una lista de funcionarios; cada funcionario tiene un código en esa lista; la lista son reportes diarios de actividades, los datos los tengo de forma horizontal. Solo quiero saber por ejemplo cuantas actividades reportó PEDRO en un reporte equiz. Otro ejemplo mas completo:
    COD EMPLEADO ACTIV1 ACTIV2 ACTIV3 ACTIV4 TOTAL
    123 PEDRO NDF 3459 ÑL09 12LK 04
    258 JOSE 7863 KJHG 87U6 03
    369 JUAN ER43 9876 YUTR 03
    123 PEDRO 234 OIUY 765 UJ76 04
    147 CARLOS ERT QWE 02
    123 PEDRO 9832 DER 02

    Bien; solo quiero saber cuantas actividades realizó pedro en la jornada, utilizando su COD para identificarlo.

    Gracias.

  5. Rodrigo Damian Orlando says:

    Hola. Ya estoy familiarizado con vba, soy programador ademas.

    Y siempre trabaje con macros, por ahi no tanto directo desde el Office sino consumiéndolos desde alguna app.

    El tema es que ahora mi viejo (padre) me pregunto sobre esto, y me dio curiosidad, de que forma se podría poner la función que este disponible para todo el Excel como si fuera una función nativa más?

    Muchas gracias.

  6. josé antonio says:

    Estoy tratando de hacer una función que tome un grupo de celdas adyacentes, 5 por ejemplo, y me devuelva 5 valores en 5 celdas distintas. Alguien sabe cómo hacerlo?
    Muchas gracias!

  1. December 29, 2011

    […] Crear funciones personalizadas en Excel […]

  2. November 24, 2012

    […] un artículo del 2010 explicaba cómo Crear funciones personalizadas en Excel y tener nuestras propias funciones escritas por nosotros […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: