excel如何用公式进行去重

如图所示,我想在C列显示成D列的样子,而且会根据我B列数据增加而自动变化,要怎么弄?

1、先对数据进行排序。全选所有数据,点击数据栏目下的排序,弹出排序对话框。

2、在排序对话框中把要对比的每一列数据依次作为条件进行排序。如果数据有标题行,需要把“数据包含标题”前的选框打勾。

3、在对应的空白单元格(图中是D2)中输入公式:“=if(and(A2=A3,B2=B3,C2=C3),true)”,然后点击回车。

4、鼠标放在D2单元格的右下角,出现“+”时双击鼠标,自动向下填充单元格。可以看到重复的数据在D列单元格显示的是TRUE。

5、全选D列新增的数据,点击鼠标右键,点选择性粘贴,在弹出的对话框中选择数值格式,点击确定。

6、可以看到最后的结果,D列是TRUE的都排到了表格后面,选中删除即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-22

缺点:

    不能从顶行开始

    排序是倒序(使用lookup的机制)

相比其他的公式逻辑相对简单些.

IFNA(LOOKUP(1,0/((COUNTIF(C$1:C1,A:A)=0)*(ISBLANK(A:A)=FALSE)),A:A),"")

第2个回答  2017-11-30

用数组公式可以,如图

需要用Ctrl+Shift+Enter三键来结果公式

=IFERROR(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))),"")

输入后,下拉即可

这里只列举了9行数据,数据多的时候,行号自己改下。

追问

这个公式我百度查到了,我也能弄出来,但是我上面加几行空白就会失效。不知道是哪里出了问题。能给我讲解下这个公式吗?感觉能看懂,但是应用的时候总感觉和想的不一样。谢谢

追答

1 、使用=row()公式,获取行号;
2、使用=MATCH(A1,$A$1:$A$9,0)公式,找到数据的位置(注意观察重复出现的数据,用公式算出来的位置,显示的最小的位置);
3、使用=IF(C1=B1,C1,"")公式,将重复的位置数据,去掉;
4、使用=SMALL($D$1:$D$9,ROW())公式,去掉空格(将位置数据依次排列出来);
5、使用=INDEX($A$1:$A$9,E1)公式,将位置数据,转换成对应的文本。
这样,能看明白么?

第3个回答  2017-12-05

用这个清理重复项用这个清理重复项

第4个回答  2021-03-22