ممکن است زمانی نیاز داشته باشید که کمترین اعداد را در لیستی از مقادیر بیابید. اگر از تابع کاربرگ SMALL استفاده کنید، انجام این کار نسبتاً آسان است. این تابع دو پارامتر دارد: محدوده مقادیری که باید ارزیابی شوند و نشانگر کوچکترین عددی که می خواهید. به عنوان مثال، موارد زیر دومین عدد پایین را در محدوده A1:A100 برمی گرداند:
=SMALL(A1:A100,2)
اگر می خواهید دو عدد کمتر در محدوده را بدانید، از دو فرمول حاوی تابع SMALL استفاده کنید - یکی با 1 به عنوان پارامتر دوم (برای کمترین عدد) و دیگری با 2 به عنوان پارامتر دوم (برای دومین عدد پایین) .
البته شرایطی وجود دارد که در آن دو کوچکترین عدد در محدوده می توانند در واقع یک عدد باشند. به عنوان مثال، اگر کمترین عدد 3 باشد و 3 دوم در لیست وجود داشته باشد، هر دو پایین ترین عدد یکسان خواهند بود. اگر دو عدد پایین ترین یکتا را می خواهید، باید از یک ماکرو برای تعیین آنها استفاده کنید.
Function SMALLn(rng As Range, n)
Application.Volatile
SMALLn = False
If n < 1 Then Exit Function
Dim i As Long, j As Long, k As Long, min, arr, arr2
arr = Application.Transpose(rng)
ReDim arr2(n - 1)
min = Application.WorksheetFunction.Min(arr)
j = UBound(arr)
k = 0
arr2(k) = min
For i = 1 To j
If Application.Small(arr, i) arr2(k) Then
k = k + 1
arr2(k) = Application.Small(arr, i)
If k = n - 1 Then
SMALLn = arr2(k)
Exit For
End If
End If
Next i
End Function
این تابع تعریف شده توسط کاربر به روش زیر استفاده می شود:
=SMALLn(A1:A100,2)
هنگامی که تابع به این شکل فراخوانی می شود، دومین کمترین مقدار منحصر به فرد را در محدوده مشخص شده برمی گرداند.