
Return the k-th smallest value in a dataset. Useful when you want a ranked low value instead of just the minimum.
SMALL returns the k-th smallest value in a dataset. It does more than MIN because it lets you ask for the 2nd, 3rd, or 5th smallest value instead of only the single lowest one.
That makes it useful for comparison lists, budget options, fastest times, and low-end thresholds. If you want to look beyond the absolute minimum, SMALL gives you a ranked view from the bottom of the dataset.
Returns a value based on its rank from the bottom of the dataset.
Returns the requested ranked value. If the array is empty or k is invalid, Excel returns #NUM!.
=SMALL(array, k)
array is the set of numbers to rank, and k is the position from the smallest. So 1 means smallest, 2 means second smallest, and so on.
| Function | What it returns | Use it when |
|---|---|---|
SMALL |
The k-th smallest value | You need a ranked result from the bottom |
MIN |
The smallest value | You only need the lowest value |
LARGE |
The k-th largest value | You need a ranked result from the top |
RANK.EQ |
The rank of a value | You already know the value and want to know its position |
SMALL is handy when the minimum is too extreme to be the only reference point. For example, the absolute cheapest supplier quote may be unusual, but the second or third cheapest price might be a more realistic benchmark. The same idea applies to times, costs, scores, and many other datasets.
Microsoft notes that SMALL returns #NUM! if the array is empty. The same error appears if k is less than or equal to zero, or if it is greater than the number of data points. If n is the number of values, then SMALL(array,1) gives the smallest value and SMALL(array,n) gives the largest value.
Duplicate values stay in the ranking. If the two lowest values are both 10, then the first and second ranked results can both be 10. That is expected because SMALL returns the value at the requested position, not only unique values.
This is useful when you want the next cheapest or next fastest result instead of the single absolute minimum.
=SMALL(B1:B10,2) // Returns the second smallest value in the range.
Identify the second lowest number in B1:B10. Formula: =SMALL(B1:B10,2).
When k is 1, SMALL returns the same result as MIN.
=SMALL(B1:B10,1) // Returns the smallest value in the range.
Find the absolute minimum using SMALL. Formula: =SMALL(B1:B10,1).
This is useful for ranking low-end values without having to sort the original data.
=SMALL(B1:B10,3) // Returns the third smallest value in the range.
Find the third smallest value in B1:B10. Formula: =SMALL(B1:B10,3).
A value like the 5th smallest can be more useful than the absolute minimum when you want a realistic lower-end target.
=SMALL(B1:B10,5) // Returns the fifth smallest value in the range.
Identify the fifth smallest value in B1:B10. Formula: =SMALL(B1:B10,5).
1 means smallest, 2 means second smallest, and so on.#NUM! if the array is empty or k is outside the valid range.SMALL(array,1) gives the same result as MIN.Tell your friends about this post