
随着Excel高版本的普及,去除重复值变得简单起来,因为新版添加了去除复重复值的命令。本文中所涉及的不仅仅简单的去除,而会涉及如何显示重复值,如果用公式提取非重复值等内容。值得大家收藏和学习。
1 高级筛选法。选取数据区域,数据 - 高级筛选 - 选择不重复值的记录。
2 数据透视表法。
用数据透视表无疑是个非常不错的办法,不仅剔除了重复,还可以列出来每项重复了多少次:
3 加辅助列用COUNTIF可以显示出每个出现的次数,但在实际操作过程中这种方法并不实用,倒是可以用在条件格式上,让有重复的一目了然:
4 函数1
假如表头是A1,数据是A2:A24,在C列中用公式:
C2{=OFFSET($A$1,MATCH(,COUNTIF($C$1:C1,$A$2:$A$24),),)&''}
(结果顺排)
其中:
COUNTIF($C$1:C1,$A$2:$A$24)
COUNTIF第二个参数为区域时,这就是个数组函数,返回第二个参数中每个数在第一个区域中个数的一组数。
因为$C$1:C1中没有与数据中相同的值,所以返回的结果是一组均为0的数组;当公式拉至下一个单元格时,因为$C$1:C1变成了$C$1:C2,而C2是与数据中的第一个值相同的,这样就会返回第一个为1其余为0的一组数组;类推……
MATCH(,COUNTIF(),)
这个就是查找0值在COUNTIF这个数组中第一次出现的位置。
OFFSET($A$1,MATCH(),)
以A1为参照,向下偏移。
以上函数源自兰色幻想。
关于主要段结果的数组表: 
5 函数2
函数法解决:
假如表头是A1,数据是A2:A24,在C列中用公式:
C2=LOOKUP(2,1/NOT(COUNTIF($C$1:C1,$A$2:$A$24)),$A$2:$A$24)
其中:
COUNTIF($C$1:C1,$A$2:$A$24)
COUNTIF第二个参数为区域时,这就是个数组函数,返回第二个参数中每个数在第一个区域中个数的一组数。
因为$C$1:C1中没有与数据中相同的值,所以返回的结果是一组均为0的数组;当公式拉至下一个单元格时,因为$C$1:C1变成了$C$1:C2,而C2是与数据中的第一个值相同的,这样就会返回第一个为1其余为0的一组数组;类推……
NOT(COUNTIF())
把COUNTIF结果为1的转为0,结果为0的转为1。
1/NOT()
把NOT结果为1的仍保留,结果为0的转为NA
LOOKUP(1/NOT())
利用的LOOKUP模糊查找,最后一个与1对应的位置的值。
关于主要段结果的数组表: 
*注:正确的公式应为Lookup(2,1/...以前写这个公式的时候未正确认识Lookup,给您造成不便,非常抱歉。
6 EXCEL2007/2010版解决:
7 VBA法
Sub M()
Dim myrow As Long
Dim myrng As Range
myrow = Range('a65536').End(xlUp).Row
Set myrng = Range('a1:a' & myrow)
myrng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range('B1'), Unique:=True
End Sub
其实没什么特别的,就是高级筛选而已啦……
8 合并计算法。
合并计算功能添加多个表格的数据,生成的结果也会除去重复值,留下唯一值。
近年随着AI技术的普及,以前让很多大神绞尽脑汁、很多看似牛逼的功能如今只要动动手指,一串公式、一串代码就如行云流水般浮现,这也造就了很多人不爱学习,不爱专研!科技的发展好也不好,且看未来Office还能再飞多远?
将此文发送给你的好友,或者分享到你的朋友圈。和小伙帮们一起成长,秒变Excel和数据分析高手!

