/ / Función de media personalizada en Excel VBA

Función de media personalizada en Excel VBA

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

Situación:

Función de media 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 paréntesis significa que le damos a Excel VBA un rango y dos variables enteras como entrada. Nombramos nuestro rango rng, una variable Integer que llamamos inferior y una variable Integer que llamamos upper, pero puede usar cualquier nombre.

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

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 bucle For Each Next para esto. Agregue las siguientes líneas de código:

For Each cell In rng

Next cell

Nota: aquí se seleccionan aleatoriamente rng y celda, puede usar cualquier nombre. Recuerde referirse a estos nombres en el resto de su código.

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

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 bucle.

CUSTOMAVERAGE = total / count

7. No te olvides de finalizar la función. Añade la línea:

End Function

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

Resultado:

Resultado de función de promedio personalizado

Como cheque, puedes borrar todos los valores que estáninferior a 10 y superior a 30 y use la función de promedio estándar en Excel para ver si Excel calcula el mismo promedio que nuestra función de promedio personalizado.

Comprobación de la función de media personalizada

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

Lea también: