本文总共973个字,阅读需4分钟,全文加载时间:2.291s,本站综合其他专栏收录该内容! 字体大小:

文章导读:网上有很多去重的代码,但是都没有讲去重的原理。这不是我们学习Excel态度。要学好一门技术,用好Excel我们必须要知道其内部的原理,而不是记操作步骤和工公式。好,言归正传。 因为 Excel的公式系统实在是太强大……各位看官请向下阅读:

网上有很多去重的代码,但是都没有讲去重的原理。这不是我们学习Excel态度。要学好一门技术,用好Excel我们必须要知道其内部的原理,而不是记操作步骤和工公式。好,言归正传。

因为 Excel的公式系统实在是太强大了,所以Excel去重的方法有好几种,每一种思路都不太一样。但是我们不用每一种都去掌握研究,我们只需要掌握一种思路最简洁高效的就可以了。下面看代码:

=IFERROR(INDEX($A$2:$A$9,MATCH(0,COUNTIF($H$1:$H1,$A$2:$A$9),0),COLUMN(A1)),"")

先看结果:

这一行代码包括了三个主要部份如下:

第1部份:COUNTIF($H$1:$H1,$A$2:$A$9),0) 这一部份会返回一个数组 {1,1,1,0,1,0} ,这个数组里面只有1和0两个值。1和0是什么意思?要知道这一点,首先我们必须知道这种用法功能是去查找A2-A9单元格中的数据是否包括在H1中,如果包括,返回1,不包括返回0。简单地说,就是Excel会用循环的方式,将A2-A9每个单元格的值去和H1单元格的值做对比,如果发现A2-A9某个单元格包括中H1单元格中,就标记1,不在就标记0。然后把所有的结果生成一个数组返回来。所以内部原理就是循环对比,然后生成一个只有1 和 0的数组,{1,1,1,0,1,0}, 数组中的1 和 0 所经的位置与A2-A9单元格位置对应

到这,我们就有一个数组了,通过数组,我们就可以知道,哪个位置是0,那对应的那个单元格就没有出现过,就可以提取出来。如果哪个位置为1,那就是已经有了,就不提取了。这样就达到了去重的目的。

所以,我们可以通过查找数组中0的位置,来提取A2-A9单元格的值。所以首先就要查找0在数组中的位置,这也是第2部份。

第二部份:MATCH(0,COUNTIF($H$1:$H1,$A$2:$A$9),0) 查找0 在数组中的位置,把这个位置作为 INDEX的参数,所以,第三部份就是下面这样的

第三部份:INDEX($A$2:$A$9,MATCH(0,COUNTIF($H$1:$H1,$A$2:$A$9),0),COLUMN(A1)) 提取 A2-A9 单元格中的值,具体提取哪一个值,就是通过MATCH来确定的。

如果还是不明白,可以关注我。我会把这个知识点做成视频分享

#Excel技巧#

以上内容由优质教程资源合作伙伴 “鲸鱼办公” 整理编辑,如果对您有帮助欢迎转发分享!

你可能对这些文章感兴趣:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注