¿Cómo usar la función WorksheetFunction.AverageIf en VBA?

WorksheetFunction.AverageIf en VBA es una función que calcula el promedio (media aritmética) de todas las celdas en un rango que cumplen con un criterio específico. Aquí tienes un ejemplo de cómo usar WorksheetFunction.AverageIf en VBA:

Sub CalculateAverageIf()
    Dim ws As Worksheet
    Dim averageCriteriaRange As Range
    Dim criteria As String
    Dim averageResult As Double
    
    ' Establecer la hoja de cálculo
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' Definir el rango para el criterio de promedio
    Set averageCriteriaRange = ws.Range("A1:A10")
    
    ' Establecer el criterio (por ejemplo, los valores que son mayores a 5)
    criteria = ">5"
    
    ' Usar la función AverageIf para calcular el promedio
    averageResult = Application.WorksheetFunction.AverageIf(averageCriteriaRange, criteria)
    
    ' Mostrar el resultado en un cuadro de diálogo
    MsgBox "El promedio de las celdas que cumplen con el criterio es: " & averageResult
End Sub
En este ejemplo, se calcula el promedio de las celdas en el rango A1:A10 de la hoja Sheet1 que contienen valores mayores a 5. El resultado se almacena en la variable averageResult y luego se muestra un cuadro de diálogo con dicho resultado. No olvides adaptar el nombre de la hoja y los rangos a tu caso en particular. Si también necesitas especificar un rango donde obtener los valores para calcular el promedio, puedes usar WorksheetFunction.AverageIfs, que soporta múltiples criterios y rangos:

Sub CalculateAverageIfs()
    Dim ws As Worksheet
    Dim averageCriteriaRange As Range
    Dim averageValuesRange As Range
    Dim criteria As String
    Dim averageResult As Double
    
    ' Establecer la hoja de cálculo
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    ' Definir el rango para el criterio de promedio
    Set averageCriteriaRange = ws.Range("A1:A10")
    
    ' Definir el rango de donde tomar los valores para el promedio
    Set averageValuesRange = ws.Range("B1:B10")
    
    ' Establecer el criterio (por ejemplo, los valores que son mayores a 5)
    criteria = ">5"
    
    ' Usar la función AverageIfs para calcular el promedio
    averageResult = Application.WorksheetFunction.AverageIfs(averageValuesRange, averageCriteriaRange, criteria)
    
    ' Mostrar el resultado en un cuadro de diálogo
    MsgBox "El promedio de las celdas que cumplen con el criterio es: " & averageResult
End Sub
En este caso, el promedio se calcula usando los valores en B1:B10 basándose en si los valores correspondientes en A1:A10 cumplen con el criterio especificado.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario