大数跨境
0
0

Excel去重复8种解法【经验科普】

Excel去重复8种解法【经验科普】 Office数据分析
2025-09-27
1
导读:随着excel 2010版普及,去除重复值变得简单起来,因为2010版添加了去除复重复值的命令。本文中所涉及


    随着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和数据分析高手!


【声明】内容源于网络
0
0
Office数据分析
不定时推送Excel及数据分析相关教程!篇篇都是干货!致力于Office效率提升,数据分析及可视化、BI商业智能报告!
内容 694
粉丝 0
Office数据分析 不定时推送Excel及数据分析相关教程!篇篇都是干货!致力于Office效率提升,数据分析及可视化、BI商业智能报告!
总阅读135
粉丝0
内容694