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.

unique-distinct-list-sorted-alphabetically-from-a-range

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.
extract-a-unique-distinct-list-sorted-A-Z-from-a-range.xls
(Excel 97-2003 Workbook *.xls)

Functions in this article:

COUNTIF(range,criteria)
Counts the number of cells within a range that meet the given condition

SUM(number1,[number2],)
Adds all the numbers in a range of cells

IF(logical_test;[value_if:true];[value_if_false])
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

INDEX(array,row_num,[column_num])
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".