当excel有很多数据,而且有很多是重复数据的时候,如何快速提取不重复值就成为了需要解决的难题!
如图中案例,A列是学校的列表,由于很多学员都出自同一所大学,所以就会有很多重复的。现在,需要提取不重复的学校列表,也就是E列这样的最终效果,你会怎么做呢?
这里,加薪学院提供2个经典用法,分别适用手动和自动两个场景。
一、用功能操作,适用于固定数据手动操作的前提,是这个数据是固定的,不再会变动,即这个操作只对目前已经录入的A2:A12有效,如果继续在A13开始录入的话,这个方法就不适用了。
首先,选中A2:A12区域,复制到空白处粘贴,然后点击“菜单栏-数据-删除重复值”:
在弹窗的界面框里确认信息,点击确认。
然后,excel就直接将重复值删除掉,只保留一个选项,最终得到了图中4个结果的唯一值。
二、写函数公式,适用于变化数据如果A列数据是变化的,那么就最好用函数公式,这里就要用到数组公式。(当然,固定数据更是同样可以使用)
首先,这是一个数组公式:
=IFERROR(INDEX(A2:A100,SMALL(IF(IFERROR(MATCH($A$2:$A$100,$A$2:$A$100,0),9999)=ROW(A2:A100)-1,ROW(A2:A100)-1),ROW(A2:A100)-1)),””)
由于不知道A列最多会有多少个唯一项(因为数据后面还可以再添加),所以E列放置数组公式的单元格要多选一些,我这里是以100行的数据做案例,即对A列100行的数据(还可以继续输入80多行数据)进行自动查询不重复值,E列最多显示100行。
当然,这个数字100可以在公式里直接修改扩大,我这里只是做个示例。
现在我们来分解一下这个公式:
第一部分
IF(IFERROR(MATCH($A$2:$A$100,$A$2:$A$100,0),9999)=ROW(A2:A100)-1,ROW(A2:A100)-1)
这里首先是用match函数获得A列唯一值的位置编号
MATCH($A$2:$A$100,$A$2:$A$100,0)
因为match如果找到a3、a4这些单元格的值,会在a2单元格这里就结束了,返回a2单元格的位置编号,所以就过滤掉了重复值,只有1、4、7、10这几个唯一值的位置编号。
IFERROR(MATCH($A$2:$A$100,$A$2:$A$100,0),9999)
然后,match函数外面套用一个iferror函数,是为了避免A列的空单元格造成影响,如果是空单元格,全部返回9999,到时候取值的时候忽略掉这些9999即可。
IF(IFERROR(MATCH($A$2:$A$100,$A$2:$A$100,0),9999)=ROW(A2:A100)-1,ROW(A2:A100)-1)
接着将位置编号和行号做对比,两者相等的情况下保留,由于是从a2单元格开始,所以行号要减去1。
这样,第一部分的结果就如图中C列所示,只有1、4、7、10这四个数字。
然后,第二部分用small函数取出来就好懂了,第三部分再用index取出对应的内容,第四部分再用iferror函数过滤掉错误值。
最后,我们测试一下:将A6单元格修改了个新的名称,在A13单元格增加了个新的名称,函数部份没有动,E列就自动跟着改变了~