Нахождение максимального или минимального наибольшего абсолютного значения для любого количества ячеек над ним

Нахождение максимального или минимального наибольшего абсолютного значения для любого количества ячеек над ним

Я хочу найти наибольшее значение (положительное или отрицательное) из определенного количества ячеек над ним и вставить под ним. Ниже приведен код для поиска наибольшего значения для 6 ячеек над выходной ячейкой. Но я не знаю, как найти наибольшее значение, если количество ячеек над ним, которые нужно проанализировать, больше или меньше 6. Он зациклен для поиска значений нескольких групп ячеек с количеством ячеек над ним ровно "n" и создания пустой ячейки для поиска максимального значения. Я создал цикл, но застрял на этом. Я думаю, что мой подход неверен. Я могу знать, сколько есть случаев. Я могу создать поле ввода, чтобы попросить пользователя указать количество случаев, чтобы мы могли создать пустую строку после этого количества строк. Но я застрял на формуле, которую нужно использовать для вычисления значения. Я не могу вставить переменную внутрь формулы. Если есть какой-либо другой подход, чтобы сделать это, то я за него.

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

Ниже представлена ​​фотография того, с чем я работаю и чего ожидаю: введите описание изображения здесь

решение1

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

Выбирает максимальное значение в ячейках выше в том же столбце (не использовать в ячейке в первой строке). Требуется обозначение адреса "A1".

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

Выбирает максимальное значение в ячейках выше в том же столбце (не использовать также в ячейке в первой строке). Требуется адресная нотация "R1C1".

PS. У меня только национальный Excel, поэтому в формулах могут быть незначительные ошибки. Но я думаю, что этого достаточно, чтобы понять их идею.

Связанный контент