Encontrar el valor absoluto máximo o mínimo para cualquier número de celdas superiores a él

Encontrar el valor absoluto máximo o mínimo para cualquier número de celdas superiores a él

Quiero encontrar el valor más grande (positivo o negativo) de una cierta cantidad de celdas encima y pegarlo debajo. A continuación se muestra el código para encontrar el valor más grande para 6 celdas encima de la celda de salida. Pero no sé cómo encontrar el valor más grande si el número de celdas encima que se van a analizar es mayor o menor que 6. Se realiza un bucle para encontrar valores de múltiples grupos de celdas que tienen exactamente "n" número de celdas encima. y crea una celda vacía para encontrar el máximo. He creado el bucle pero estoy atascado en este. Creo que mi enfoque es incorrecto. Puedo saber cuántos casos hay. Puedo crear un cuadro de entrada para pedirle al usuario que proporcione cuántos casos para que podamos crear una fila vacía después de tantas filas. Pero estoy atascado en la fórmula que debo utilizar para calcular el valor. No puedo insertar una variable dentro de la fórmula. Si hay algún otro método para hacer esto, entonces lo acepto.

Sub maxvalue()
Dim iRow As Integer, iCol As Integer
Dim oRng As Range
Dim nRng As Range
Set oRng = Range("A4")
iRow = oRng.Row
iCol = oRng.Column
Do
   If Cells(iRow + 1, iCol) <> Cells(iRow, iCol) Then
        Cells(iRow + 1, iCol).EntireRow.Insert Shift:=xlDown
        Cells(iRow + 1, iCol + 1).Value = "max"
        Cells(iRow + 1, iCol + 2) _
            .FormulaR1C1 = "=IF(ABS(MAX(R[-6]C:R[-1]C))<ABS(MIN(R[-6]C:R[-1]C)),MIN(R[-6]C:R[-1]C),MAX(R[-6]C:R[-1]C))"
        iRow = iRow + 2
Else
    iRow = iRow + 1
End If
Loop While Not Cells(iRow, iCol).Text = ""
End Sub

A continuación se muestra la imagen de con qué estoy trabajando y lo que espero: ingrese la descripción de la imagen aquí

Respuesta1

=MAX($A$1:INDIRECT(ADDRESS(ROW()-1,COLUMN())))

Selecciona el valor máximo en las celdas de arriba en la misma columna (no lo use en la celda de la primera fila). Necesita notación de dirección "A1".

=MAX(INDIRECT(ADDRESS(1,COLUMN()), False):R[-1]C)

Selecciona el valor máximo en las celdas de arriba en la misma columna (no lo use también en la celda de la primera fila). Necesita notación de dirección "R1C1".

PD. Solo tengo Excel nacional, por lo que los errores menores pueden estar en las fórmulas. Pero creo que es suficiente para entender la idea de ellos.

información relacionada