1、A列是源数据,想要去除其中的重复数据,将筛选后的数据放到B列中我们先想一个思路,然后再用公式去实现。我们知道Row函数,返俱蒉檑诟回行号;Match函数,返回数据首次在指定区域出现的顺序号;这样我们可以用两个函数返回的结果进行比较,如果是两者相同,那么意味着,这是数据第一次出现,就将他提取出来,如果两者不同,就表示这个数值已经出现过至少一次了,不需要提取。
2、顺着上面的思路,我们来一步步实现首先,利用Row函数,将各个数值对应的行号,表示出来。
3、利用Match函数,将各个数据第一次在数据区域出现的序列数,求出来
4、利用If函数,对上述两个函数的结果进行比较如果两者相同,则返回Match函数的结果如果两个不同,则返回空值
5、我们需要从上到下按顺序依次提取不重复的数值,上述步骤的结果,可以看到有很多空的单元格,需要将之去除。这里用到了Small函数,对数据进行从小到大排序并提取
6、最后,再用Index函数,通过行号,返回数据区域的数值也就把不重复的数值提取出来了
7、其实,到上一步就已经完成了,但我们想要一个公式谀薜频扰得到结果,而不是分成那么多列。那么公式如下:=INDEX($A$1:$A$9,SMALL(IF(MATCH($A$1:$A$9,$帆歌达缒A$1:$A$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9,$A$1:$A$9,0),""),ROW(A1)))而且是数组公式,需要用Ctrl+Shift+Enter三键来结果公式为什么要用数组公式呢?我们前面不是都是用的一般的公式么?这里主要是Small函数的问题,我们知道,我们在用Small函数时,可以选择区域,但当前面的函数结果汇总到一个公式中时,只能通过数组函数,才能得到一个区域,也就才能达到Small函数排序并提取数值的目的。这里,用到数组函数的,其实是这么一点:SMALL(IF(MATCH($A$1:$A$9,$A$1:$A$9,0)=ROW($A$1:$A$9),MATCH($A$1:$A$9,$A$1:$A$9,0),""),ROW(A1))通过F9查看公式结果,就能看到,Small前半部分这里是生成了一个序列,作为排序区域,而最后通过行号,返回一个数值,再作为index返回的行号。如果对数组公式有比较深刻的认识,这里会好理解一些;如果刚接触数组公式,可以多花一些时间去体会。
8、最后,再利用iferror函数,将错误数据剔除。