A continuación vamos a ver un programa en Excel VBA que crea un enlace: / VBA-ejemplos-definidos por funciones de usuario [definido por el usuario Función] que calcula el promedio de un rango seleccionado al azar con exclusión de uno o más valores que son valores atípicos y no se hará la media.

Situación:

Custom Average Function in Excel VBA

funciones definidas por el usuario deben ser colocados en un módulo.

  1. Abra el Editor de Visual Basic y haga clic en Insertar, Módulo.

  2. Añadir la siguiente línea de código:

Function CUSTOMAVERAGE(rng As Range, lower As Integer, upper As Integer)

El nombre de nuestra función es CUSTOMAVERAGE. La parte entre los soportes significa que damos Excel VBA un rango y dos variables entero como entrada. Nombramos nuestra gama RNG, una variable entera que llamamos inferior, y una variable de enteros que llamamos superior, pero se puede usar cualquier nombre.

  1. A continuación, declaramos un objeto Range y dos variables de tipo entero.

Llamamos a la célula objeto Range. Una variable entera que llamamos total y una variable entera que llamamos contar.

Dim cell As Range, total As Integer, count As Integer
  1. Queremos comprobar cada celda de un rango seleccionado al azar (de este intervalo puede ser de cualquier tamaño). En Excel VBA, puede utilizar el siguiente bucle For Each para esto. Añadir las siguientes líneas de código:

For Each cell In rng

Next cell

Nota: RNG y la célula se eligen al azar aquí, se puede usar cualquier nombre.

Recuerde hacer referencia a estos nombres en el resto de su código.

  1. A continuación, comprobar para cada valor en este rango si cae entre los dos valores (inferior y superior). Si es verdad, que incremento total por el valor de la celda y que incrementa el contador en 1. Añadir las siguientes líneas de código para el bucle.

If cell.Value >= lower And cell.Value <= upper Then

total = total + cell.Value

count = count + 1

End If
  1. Para volver el resultado de esta función (el deseado promedio), añadir la línea de código siguiente fuera del bucle.

CUSTOMAVERAGE = total / count
  1. No se olvide de terminar la función. Agregue la línea:

End Function
  1. Ahora puede utilizar esta función como cualquier otra función de Excel para calcular el promedio de los números que caen entre dos valores.

Resultado:

Custom Average Function Result

Como comprobación, puede eliminar todos los valores que son menores de 10 y mayores de 30 años y utilizar la función de media estándar en Excel para ver si Excel calcula el mismo promedio que nuestra función promedio personalizado.

Custom Average Function Check

Nuestra función personalizada promedio trabaja! Nota: esta función sólo está disponible en este libro.