Excel中利用数组公式去除重复数值

作者:清风拂面 | 创建时间: 2023-03-30
在一些时候,我们可能需要把一列数据中的不重复数据筛选出来,当然通过Excel自带的筛选功能可以实现,但不能实时同步提取数值,这时候就需要用到公式。在这里简单地分步骤介绍下如何利用数组公式提取不重复的数值。...
Excel中利用数组公式去除重复数值

操作方法

A列是源数据,想要去除其中的重复数据,将筛选后的数据放到B列中 我们先想一个思路,然后再用公式去实现。 我们知道Row函数,返回行号;Match函数,返回数据首次在指定区域出现的顺序号;这样我们可以用两个函数返回的结果进行比较,如果是两者相同,那么意味着,这是数据第一次出现,就将他提取出来,如果两者不同,就表示这个数值已经出现过至少一次了,不需要提取。

顺着上面的思路,我们来一步步实现 首先,利用Row函数,将各个数值对应的行号,表示出来。

利用Match函数,将各个数据第一次在数据区域出现的序列数,求出来

利用If函数,对上述两个函数的结果进行比较 如果两者相同,则返回Match函数的结果 如果两个不同,则返回空值

我们需要从上到下按顺序依次提取不重复的数值,上述步骤的结果,可以看到有很多空的单元格,需要将之去除。 这里用到了Small函数,对数据进行从小到大排序并提取

最后,再用Index函数,通过行号,返回数据区域的数值 也就把不重复的数值提取出来了

其实,到上一步就已经完成了,但我们想要一个公式得到结果,而不是分成那么多列。 那么公式如下: =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返回的行号。 如果对数组公式有比较深刻的认识,这里会好理解一些;如果刚接触数组公式,可以多花一些时间去体会。

最后,再利用iferror函数,将错误数据剔除。

温馨提示

数组公式一定要以Ctrl+Shift+Enter三键来结果
index(indirect)+small+if函数是数组公式中最常见的三剑客,学好这个例子,可以一通百通
点击展开全文

更多推荐