能在来源框直接写函数解决这个重复的问题吗?
去重复保留唯一的方法有很多,常用的如下:
方法一,数据选项的删除重复项,适合MS EXCEL 2007及其以上版本。这个方法的好处是不需要写公式,高效简单。如图
首先复制A列数据,然后点数据选项的删除重复项,弹出如图对话框,点确定即可,如图。
方法二,数据透视表,这个方法适合所有主流版本。熟练掌握以后,处理分类汇总非常方便,当然这里用数据透视表去重复保留唯一有点大材小用的感觉。MS EXCEL 2007以上版本选择插入菜单,插入数据透视表,如图
注意选择的区域是包含题头的,点确定后,弹出如下菜单,勾选姓名,如图:
点总计单元格,鼠标右键弹出菜单,选择删除总计,如图
方法三,高级筛选,MS 2007及其以上版本操作步骤为:复制A列数据,点数据,筛选,高级,勾选选择不重复记录,如图
以上三种方法是我们推荐的方法,简单实用,不需要烧脑去写公式。下面我们介绍常用的四种公式写法,分为数组公式和普通公式。数组公式是经典的INDEX+SMALL+IF的应用,普通公式用到了LOOKUP+FREQUENCY。
公式法一,由COUNTIF构建行标或列标。写法1如图:
C3输入公式
=IFERROR(INDEX($A$2:$A$9,SMALL(IF(COUNTIF(INDIRECT("A2:A"&ROW($2:$9)),$A$2:$A$9)=1,ROW($1:$8),4^10),ROW(A1))),"")
按ctrl+shift+enter,下拉填充
写法2,如图:
D3输入公式
=IFERROR(INDEX($A$2:$A$9,SMALL(IF(COUNTIF(OFFSET($A$2,,,ROW($1:$8),),$A$2:$A$9)=1,ROW($1:$8),4^10),ROW(A1))),"")
按ctrl+shift+enter,下拉填充
公式法二,由MATCH构建行标或列标,如图
E3输入公式
=IFERROR(INDEX($A$2:$A$9,SMALL(IF(MATCH($A$2:$A$9,$A$2:$A$9,)=ROW($1:$8),ROW($1:$8),4^10),ROW(A1))),"")
按ctrl+shift+enter,下拉填充
公式法三,普通公式,LOOKUP+FREQUENCY的应用,如图
F3输入公式
=LOOKUP(1,0/FREQUENCY(1,ISNA(MATCH($A$2:$A$9,$F$2:F2,))*1),$A$2:$A$3)&""
下拉填充
注意这个公式不能顶格书写,不能从第一行开始输入公式,只能从第二行以后开始输入公式。
这里需要说明,下拉填充是为了让新手更容易应用。很多时候我们用数组公式会选择一片区域后再输入公式,好处是不怕原始数据有不连续区域,也不需要考虑相对引用和绝对引用。
从以上方法对比可以看出,如果不是为了刻意研究公式,只需要删除重复保留唯一,最简单的还是删除重复项。当然公式法也有它的应用,例如找出重复项,只保留一个。辅助列的方法很简单,先找出重复项,最后再删除重复值,如图
B2输入公式=IF(COUNTIF($A$2:$A$9,A2)>1,A2,"")
复制B列数据到C列,然后选择性粘贴,数值,再通过数据选项删除重复值保留唯一即可。
如果我们不用辅助列,可以输入如下公式,如图
选择B2:B9后输入公式
=IFERROR(INDEX(A2:A9,SMALL(IF((COUNTIF(A2:A9,A2:A9)>1)*(MATCH(A2:A9,A2:A9,)=ROW(1:8)),ROW(1:8),4^10),ROW(1:8))),""),然后按ctrl+shift+enter
这里可以看出数组公式不需要下拉,也不需要考虑相对引用和绝对应用。
以上是我对去重复保留唯一的一些认识,不足之处请大家指正,谢谢!
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有