Incluso cuando Excel tiene muchas, probablemente cientos, de funciones incorporadas como SUMA, BUSCARV, IZQUIERDA, etc., una vez que comienza a usar Excel para tareas más complicadas, a menudo encontrará que necesita una función que no existe. No te preocupes, no estás perdido, todo lo que necesitas es crear la función tú mismo.

Pasos

  1. 1 Cree un nuevo libro de trabajo o abra el libro de trabajo en el que desea usar su Función definida por el usuario recién creada (UDF).
  2. 2 Abra el Editor de Visual Basic que está integrado en Microsoft Excel yendo a Herramientas-> Macro-> Editor de Visual Basic (o presionando Alt + F11).
  3. 3 Agregar un nuevo módulo a su libro de trabajo haciendo clic en el botón que se muestra. Puede crear la función definida por el usuario en la propia Hoja de trabajo sin agregar un nuevo módulo, pero eso le impedirá usar la función en otras hojas de cálculo del mismo libro de trabajo.
  4. 4 Crea el "encabezado" o "prototipo" de tu función. Tiene que tener la siguiente estructura:
    función pública "El nombre de su función" (param1 como tipo1, param2 como tipo2) como tipo de retorno Puede tener tantos parámetros como desee y su tipo puede ser cualquier tipo de datos básicos de Excel o tipos de objetos como Rango. Puede pensar en parámetros como los "operandos" sobre los que actuará su función. Por ejemplo, cuando dice SIN (45) para calcular el seno de 45 grados, 45 se tomará como parámetro. Entonces el código de su función usará ese valor para calcular algo más y presentar el resultado.
  5. 5 Agregue el código de la función asegurándose de que 1) use los valores provistos por los parámetros; 2) asignar el resultado al nombre de la función; y 3) cerrar la función con "función final". Aprender a programar en VBA o en cualquier otro idioma puede llevar algo de tiempo y un tutorial detallado. Sin embargo, las funciones generalmente tienen pequeños bloques de código y usan muy pocas características de un idioma. Los elementos más útiles del lenguaje VBA son:
    1. los Si bloque, que le permite ejecutar una parte del código solo si se cumple una condición. Por ejemplo:

      Resultado del curso de función pública (grado como entero) como cadena
      Si grado> = 5 Entonces
      CourseResult = "Aprobado"
      Más
      CourseResult = "Rechazado"
      Terminara si
      Función final

      Observe los elementos en una Si bloque de código: SI condición THEN código código ELSE FIN IF. los Más la palabra clave junto con la segunda parte del código son opcionales.
    2. los Hacer bloque, que ejecuta una parte del código Mientras o Hasta una condición se cumple. Por ejemplo:
      Public Function IsPrime (value As Integer) As Boolean
      Dim i As Integer
      i = 2
      IsPrime = True
      Hacer
      Si value / i = Int (value / i) Then
      IsPrime = Falso
      Terminara si
      i = i + 1
      Loop While i <value And IsPrime = True
      Función final

      Observe los elementos nuevamente: DO código LOOP WHILE / UNTIL condición. Observe también la segunda línea en la que una variable es "declarada". Puede agregar variables a su código para que pueda usarlas más adelante. Las variables actúan como valores temporales dentro del código. Finalmente, observe la declaración de la función como BOOLEAN, que es un tipo de datos que solo permite los valores VERDADERO y FALSO. Este método para determinar si un número es primordial no es el óptimo, pero lo dejé de esa manera para que el código sea más fácil de leer.
    3. los por bloquear, que ejecuta una parte del código un número específico de veces. Por ejemplo:
      Función pública Factorial (valor como entero) tan largo
      Dim resultado como largo
      Dim i As Integer
      Si valor = 0 Entonces
      resultado = 1
      ElseIf value = 1 Then
      resultado = 1
      Más
      resultado = 1
      Para i = 1 To value
      resultado = resultado * i
      Siguiente
      Terminara si
      Factorial = resultado
      Función final

      Observe los elementos nuevamente:FOR variable = límite inferior TO límite superior código NEXT. También note el agregado ElseIf elemento en el Si instrucción, que le permite agregar más opciones al código que se va a ejecutar. Finalmente, observe la declaración de la función y la variable "resultado" como Largo. los Largo tipo de datos permite valores mucho más grandes que Entero.
      A continuación se muestra el código para una función que convierte números pequeños en palabras.
  6. 6 Regrese a su libro de trabajo y use la función iniciando el contenido de una celda con un igual signo seguido por el nombre de su función. Adjunte al nombre de la función un paréntesis de apertura, los parámetros separados por comas y un paréntesis de cierre final. Por ejemplo:
    = NumberToLetters (A4)
    También puede usar su fórmula definida por el usuario buscándola en el Usuario definido categoría en el asistente Insertar fórmula. Simplemente haga clic en el Fx botón ubicado a la izquierda de la barra de fórmulas. Los parámetros pueden ser de tres tipos:
    1. Valores constantes escritos directamente en la fórmula de la celda. Las cadenas deben ser citadas en este caso.
    2. Referencias de celdas B6 o referencias de rango como A1: C3 (el parámetro tiene que ser del Distancia tipo de datos)
    3. Otras funciones anidadas dentro de su función (su función también puede anidarse dentro de otras funciones). Es decir .: = Factorial (MAX (D6: D8))
  7. 7 Verifica que el resultado sea correcto después de usar la función varias veces para asegurarse de que maneja los diferentes valores de parámetros correctamente: