Inspired from a comment in this article Unique values from multiple columns using array formulas I have now created this article. From a range spanning multiple rows and columns  I extract a unique distinct list sorted from A-Z.


Array formula in B8:

=INDEX(tbl, SMALL(IF(SMALL(IF(COUNTIF($B$7:B7, tbl)=0, COUNTIF(tbl, "<"&tbl)+1, ""), 1)=COUNTIF(tbl, "<"&tbl)+1, ROW(tbl)-MIN(ROW(tbl))+1), 1), MATCH(MIN(IF(COUNTIF($B$7:B7, tbl)>0, "", COUNTIF(tbl, "<"&tbl)+1)), INDEX(COUNTIF(tbl, "<"&tbl)+1, SMALL(IF(SMALL(IF(COUNTIF($B$7:B7, tbl)=0, COUNTIF(tbl, "<"&tbl)+1, ""), 1)=COUNTIF(tbl, "<"&tbl)+1, ROW(tbl)-MIN(ROW(tbl))+1), 1), , 1), 0), 1) + CTRL + SHIFT + ENTER

Copy cell B8 and paste it down as far as necessary.

Named ranges
tbl (B2:E5)
What is named ranges?

How to implement array formula to your workbook
Change the named range. If your list starts at, for example, F3. Change $B$7:B7 in the above formulas to F2:$F$2.

Download excel sample file for this tutorial.
(Excel 97-2003 Workbook *.xls)

Functions in this article:

Counts the number of cells within a range that meet the given condition

Adds all the numbers in a range of cells

Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE

MATCH(lookup_value;lookup_array; [match_type] Returns the relative position of an item in an array that matches a specified value

Returns a value or reference of the cell at the intersection of a particular row and column, in a given range

SMALL(array,k) Returns the k-th smallest row number in this data set.

This blog article is one out of thirteen articles on the same subject "unique".