Explanation
The SMALL function is meant to extract the "nth" smallest value from a set of data. The value for N is supplied as the second argument. To get the smallest value with SMALL, supply 1, to get the second smallest value, supply 2, and so on.
=SMALL(data,1) // 1st smallest
=SMALL(data,2) // 2nd smallest
=SMALL(data,3) // 3rd smallest
In the example shown, "data" is the named range B5:B14. In this example, the main challenge is to increment a value for nth. This is done by using an expanding range inside the ROWS function:
ROWS($B$5:B5)
As the formula is copied down the table, the range expands, and the number of rows increases, which creates an incrementing number.
Sort numbers in descending order
To sort numbers in descending order, simply replace the SMALL function with the LARGE function:
=LARGE(data,ROWS(exp_rng))
Like SMALL, the LARGE function extracts an "nth" value. However, rather than the "nth smallest" LARGE returns the "nth largest".