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