Contenido
`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.