범위에서 가장 낮은 값의 주소 찾기 (Microsoft Excel)
매크로를 작성할 때 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 [범위에서 가장 낮은 값의 주소 찾기]
.