EXCEL函数实现从列数据中提取不重复值

  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

你可能感兴趣的:(OFFICE-EXCEL)