A | B | C | |
---|---|---|---|
1 | A | A | |
2 | B | B | |
3 | C | C | |
4 | A | D | |
5 | D | E | |
6 | A | F | |
7 | B | G | |
8 | E | H | |
9 | F | I | |
10 | F | ||
11 | G | ||
12 | H | ||
13 | A | ||
14 | H | ||
15 | I | ||
16 | B |
如上图数据,在C2单元格输入公式:=INDEX(A:A,SMALL(IF(MATCH(A$2:A$16,A$2:A$16,0)=ROW($1:$15),ROW($2:$16),4^8),ROW(A1)))&""
按键盘上的Ctrl+Alt+Enter键,形成数组公式,然后公式下拉至16行。
其中公式里出现的16、15等数字,各位可以按照A列的实际行数变更,注意:=ROW($1:$15),这一段里的15是行数减1的。
公式的具体说明:
1、使用MATCH函数返回数组中每个元素第一次出现的位置;
2、用ROW函数返回数组中每个元素在数组中所处的位置,与第1步返回的数组逐一比对,如果相同说明该元素是首次出现,标识相应的行号;如果不同说明是重复出现,标识一个很大的行号,这里用4^8,4的8次方结果是65536,正好是2003版的最大行号,此处属于习惯用法;
3、使用IF函数生成一个由不重复元素所在的行号与65536组成的数组;
4、使用SMALL函数在第3步返回的数组中依次提取第1个值、第2个值、......第N个值;
5、最后使用INDEX函数提取相应位置上的数据,即列数据中的不重复值。
转自:http://www.officezhushou.com/excelhansu/3434.html