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

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

Function FindLowestAddr(pRng As Range) As String     Dim MinVal As Double     Dim MinAddr As String     Dim c As Range

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

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 교육을위한 소스입니다.

이 팁 (12744)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.

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