Author: Oscar Cronquist Article last updated on December 07, 2010

This blog post describes how to extract duplicates sorted from A to Z from two different columns combined.

### Array formula in D2:

=IF(MIN(IF((COUNTIF(List1, List1)+COUNTIF(List2, List1))*NOT(COUNTIF(\$D\$1:D1, List1))>1, COUNTIF(List1, "<"&List1)+COUNTIF(List2, "<"&List1), MAX(COUNTIF(List2, "<"&List2)+COUNTIF(List1, "<"&List2)+1)))<MIN(IF((COUNTIF(List2, List2)+COUNTIF(List1, List2))*NOT(COUNTIF(\$D\$1:D1, List2))>1, COUNTIF(List2, "<"&List2)+COUNTIF(List1, "<"&List2), MAX(COUNTIF(List1, "<"&List1)+COUNTIF(List2, "<"&List1)+1))), INDEX(List1, MATCH(SMALL(IF((COUNTIF(List1, List1)+COUNTIF(List2, List1))*NOT(COUNTIF(\$D\$1:D1, List1))>1, COUNTIF(List1, "<"&List1), ""), 1), COUNTIF(List1, "<"&List1), 0)), INDEX(List2, MATCH(SMALL(IF((COUNTIF(List2, List2)+COUNTIF(List1, List2))*NOT(COUNTIF(\$D\$1:D1, List2))>1, COUNTIF(List2, "<"&List2), ""), 1), COUNTIF(List2, "<"&List2), 0))) + CTRL + SHIFT + ENTER

copied down as far as necessary.

Named ranges
List1 (A2:A13)
List2 (B2:A14)
What is named ranges?

How to implement array formula to your workbook
Change named ranges. If your list starts at, for example, F2. Change \$D\$1:D1  in the above formula to F1:\$F\$1.

Filter duplicates from two columns and sort from A to Z.xls
(Excel 97-2003 Workbook *.xls)

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

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.

NOT(logical)
Changes FALSE to TRUE or TRUE to 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

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

MIN(number1,[number2])
Returns the smallest number in a set of values. Ignores logical values and text

MAX(number1,[number2],)
Returns the largest value in a set of values. Ignores logical values and text.

This blog article is one out of six articles on the same subject.