
위의 특정 개수의 셀에서 가장 큰 값(양수 또는 음수)을 찾아 그 아래에 붙여넣고 싶습니다. 아래는 출력 셀 위의 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" 주소 표기가 필요합니다.
추신. 국가별 Excel만 있으므로 수식에 사소한 오류가 있을 수 있습니다. 하지만 그들의 생각을 이해하는 것만으로도 충분하다고 생각합니다.