Excel 提取两列中不重复值的方法

作者: 蒋老师 分类: 电脑技巧 发布时间: 2015-10-16 16:47

  这是一个非常有趣但又非常有用的问题,实际使用中,不少时候 Excel 表中有时有一些数据是重复的(如某两列),我们要如何从两列中提取不重复值。本文转载自 Excel 技巧,本文指将两列中所有相同行的两个单元格数据连接后去掉重复项。例如在下图的 A、B 两列中,有部分行两个单元格中的数据相同,即为重复值,图中用红色标识。现在需要从两列中提取唯一值到其他区域,多次出现的重复值只提取一次。

  

  在 Excel 中,通常可用『删除重复项』功能、高级筛选、数组公式和数据透视表等方法来提取这样的重复值。下面以 Excel 2013 和上图两列数据为例,介绍如下:

  方法一:用『删除重复项』功能

  将上述 A、B 两列中的数据复制粘贴到其他区域,例如 D2:E19 区域,选择 D2:E19,在『数据』选项卡的『数据工具组』中单击『删除重复项』,在弹出的对话框中点『确定』。

  

  Excel 即可自动将重复值删除,得到两列中的唯一值。

  

  该方法较为快捷,适用于 Excel 2007 以上版本,但如果两列中的数据发生更改后还需重新操作。

  方法二:用高级筛选

  选择两列中的某个单元格,在『数据』选项卡的『排序和筛选』组中点『高级』。如果出现『Microsoft Excel 无法确定当前列表或选定区域的哪一行包含列标签,……』对话框,单击『确定』,弹出『高级筛选』对话框,将『列表区域』设置为 A、B 两列,选择『将筛选结果复制到其他位置』,将『复制到』设置为 D2 单元格,『条件区域』保留为空,同时勾选『选择不重复的记录』,单击『确定』。

  

  Excel 会将 A、B 两列中的唯一值提取到 D、E 两列。

  

  如果以后继续在 A、B 两列添加数据,再次进行高级筛选时 Excel 会保存上次的区域设置,还是比较方便的。

  方法三:用数组公式

  这种方法适合于数据量不大的情况。选择 D2:E2 区域,在编辑栏中输入数组公式:

  =INDEX(A:B,SMALL(IF(MATCH(A$2:A$19&B$2:B$19,A$2:A$19&
  B$2:B$19,)=ROW($1:$18),ROW($2:$19),4^8),ROW(A1)),{1,2})&””

  按 Ctrl+Shift+Enter 结束输入,然后选择 D2:E2,拖动填充柄向下填充公式,直到出现空白为止。

  说明:公式用 SMALL、IF 和 MATCH 函数得到同行数据相连接后第一次出现的行号,再用 INDEX 函数同时返回 A、B 两列的唯一值数据。

  方法四:使用数据透视表

  1、如果 A、B 两列的数据需要更改或添加,可先将这两列数据转换为表格。方法是选择两列数据中的某个单元格,在『插入』选项卡的『数据』组中单击『表格』,弹出『插入表』对话框,单击确定。

  

  2、再次选择两列数据中的某个单元格,在『数据』组中单击『数据透视表』,弹出『创建数据透视表』对话框,选择放置数据透视表的位置,本例为同一工作表中的 D2 单元格,单击『确定』。

  3、在『数据透视表字段列表』中勾选『货号』和『尺码』两个字段,将其添加到数据透视表。

  

  4、修改数据透视表的外观和布局。

  ① 在『数据透视表工具–设计』选项卡中,分别单击『报表布局 → 以表格形式显示』和『报表布局 → 重复所有项目标签』。

  ② 在『数据透视表工具–设计』选项卡中,单击『分类汇总 → 不显示分类汇总』。

  ③ 在『数据透视表工具–分析』选项卡的『显示』组中,单击取消选择『+/- 按钮』。

  

  这样就得到了 A、B 两列中的不重复值。以后在 A、B 两列数据后的空单元格中添加数据后,Excel 会自动扩展表格,刷新数据透视表即可得到新的唯一值数据。

  示例文件下载:https://pan.baidu.com/s/1bn1Ak0n 提取码: pvtd