매크로를 작성할 때 WorksheetFunction 메서드를 사용하여 MIN 워크 시트 함수를 적용하면 셀 범위에서 가장 낮은 값을 찾을 수 있습니다. 그러나 범위에서 가장 낮은 값을 찾을뿐만 아니라 해당 값을 포함하는 첫 번째 셀의 주소도 찾아야 할 수 있습니다.

한 가지 간단한 방법은 다음과 같이 검사 할 범위를 간단히 살펴보고 검사 할 셀의 가장 낮은 값과 주소를 모두 파생하는 것입니다.

Function FindLowestAddr(pRng As Range) As String     Application.Volatile     MinVal = pRng.Cells(1).Value     MinAddr = pRng.Cells(1).Address     For Each c in pRng         If c.Value < MinVal Then             MinVal = c.Value             MinAddr = c.Address         End If     Next c     FindLowestAddr = MinAddr End Function

이 접근 방식은 MIN 워크 시트 함수에 전혀 의존하지 않습니다. 그러나 단점이 있습니다. 숫자 값을 포함하는 셀과 그렇지 않은 셀을 구분하지 않습니다. 즉, 함수에 전달 된 범위에 빈 셀이 포함 된 경우 해당 셀은 범위에서 가장 낮은 값일 수있는 0 값을 포함하는 것으로 간주됩니다.

이 문제를 해결하는 한 가지 방법은 매크로 내에서 워크 시트 함수를 사용하는 것입니다. 다음 매크로는 MIN 및 MATCH 워크 시트 함수를 모두 사용하여 최소값의 위치를 ​​확인한 다음 범위 내에서 해당 셀의 인덱스 (오프셋)를 결정합니다.

Function GetAddr(rng As Range) As String     Dim dMin As Double     Dim lIndex As Long     Dim sAddress As String

Application.Volatile     With Application.WorksheetFunction         dMin = .Min(rng)

lIndex = .Match(dMin, rng, 0)

End With     GetAddr = rng.Cells(lIndex).Address End Function

매크로 없이는 원하는 정보를 도출 할 수있는 방법이 없다고 생각했기 때문에 주소를 찾기 위해서만 매크로를 사용하는 경우 워크 시트 수식을 사용하여 매크로를 완전히 제거 할 수 있습니다. 예를 들어, 명명 된 범위 MyRange에서 가장 낮은 값을 갖는 셀의 주소를 확인하려면 다음을 사용할 수 있습니다.

=ADDRESS(ROW(MyRange)+MATCH(MIN(MyRange),MyRange,0)-1,COLUMN(MyRange))

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (7140)은 Microsoft Excel 97, 2000, 2002 및 2003에 적용됩니다. 여기에서 Excel (Excel 2007 이상)의 리본 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

link : / excelribbon-Finding_the_Address_of_the_Lowest_Value_in_a_Range [범위에서 가장 낮은 값의 주소 찾기].