Forum Discussion
Promedio dentro de rango dinamico
Puedes lograr esto utilizando un bucle en VBA para recorrer los diferentes rangos y realizar los cálculos necesarios. Aquí tienes un ejemplo de cómo hacerlo:
El código Vba no está probado, haga una copia de seguridad de su archivo.
Sub CalcularPromedio()
Dim ws As Worksheet
Dim i As Long
Dim j As Long
Dim rng As Range
Dim subrng As Range
Dim cell As Range
Dim maxValues As Variant
Dim sumValues As Double
Dim promedio As Double
' Establecer la hoja de trabajo
Set ws = ThisWorkbook.Sheets("Nombre de tu hoja de trabajo")
' Definir el rango principal
Set rng = ws.Range("C2:C1001")
' Bucle para recorrer los diferentes rangos
For i = 2 To 1001 Step 96
' Definir el subrango dinámico
Set subrng = ws.Range(ws.Cells(i, 3), ws.Cells(i + 95, 3))
' Inicializar el array para almacenar los valores máximos
ReDim maxValues(1 To 32)
' Identificar los 32 valores más altos dentro del subrango
For j = 1 To 32
maxValues(j) = WorksheetFunction.Large(subrng, j)
Next j
' Calcular el promedio de los 32 valores más altos
sumValues = WorksheetFunction.Sum(maxValues)
promedio = sumValues / 32
' Escribir el resultado en la celda correspondiente en columna M
ws.Cells(i + 94, 13).Value = promedio
Next i
End SubAsegúrate de reemplazar "Nombre de tu hoja de trabajo" con el nombre de la hoja de trabajo en la que estás trabajando. Este código recorre el rango C2:C1001 en incrementos de 96 filas, identifica los 32 valores más altos en cada subrango dinámico de 96 filas, calcula su promedio y escribe el resultado en la columna M (columna 13) comenzando desde la fila 97. El texto, los pasos y el código vba se crearon con la ayuda de IA.
Este texto está incluido en el software, es posible utilizar gramáticamente o en un formato externo.
¡Mis respuestas son voluntarias y sin garantía!
Espero que esto te ayudará.
¿Fue útil la respuesta? Marca como mejor respuesta y dale me gusta!
Esto ayudará a todos los participantes del foro.