A continuación, veremos un programa en Excel VBA que crea una función definida por el usuario que calcula el promedio de un rango seleccionado al azar excluyendo uno o más valores que son valores atípicos y no deben promediarse.

Situación:

Función promedio personalizada en Excel VBA

Las funciones definidas por el usuario deben colocarse en un módulo.

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

2. Agregue 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 corchetes significa que le damos a Excel VBA un rango y dos variables Integer como entrada. Nombramos nuestro rango rng, una variable Integer que llamamos inferior y una variable Integer que llamamos superior, pero puede usar cualquier nombre.

3. A continuación, declaramos un objeto Range y dos variables de tipo Integer. Llamamos a la celda del objeto Range. Una variable Integer que llamamos total y una variable Integer que llamamos recuento.

Dim cell As Range, total As Integer, count As Integer

4. Queremos verificar cada celda en un rango seleccionado al azar (este rango puede ser de cualquier tamaño). En Excel VBA, puede usar el ciclo For Each Next para esto. Agregue las siguientes líneas de código:

For Each cell In rng

Next cell

Nota: rng y cell se eligen al azar aquí, puede usar cualquier nombre. Recuerde hacer referencia a estos nombres en el resto de su código.

5. A continuación, verificamos cada valor en este rango si se encuentra entre los dos valores (inferior y superior). Si es verdadero, incrementamos el total por el valor de la celda e incrementamos el recuento en 1. Agregue las siguientes líneas de código al ciclo.

If cell.Value >= lower And cell.Value <= upper Then
    total = total + cell.Value
    count = count + 1
End If

6. Para devolver el resultado de esta función (el promedio deseado), agregue la siguiente línea de código fuera del ciclo.

CUSTOMAVERAGE = total / count

7. No olvide finalizar la función. Agrega la línea:

End Function

8. Ahora puede usar esta función como cualquier otra función de Excel para calcular el promedio de números que caen entre dos valores.

Resultado:

Resultado de función promedio personalizado

Como comprobación, puede eliminar todos los valores inferiores a 10 y superiores a 30 y utilizar la función Promedio estándar en Excel para ver si Excel calcula el mismo promedio que nuestra función de promedio personalizada.

Verificación de función promedio personalizada

¡Nuestra función promedio personalizada funciona! Nota: esta función solo está disponible en este libro de trabajo.

3/5 Completado! Más información sobre funciones y subs>
Capítulo siguiente: Objeto de aplicación