excel - 在两列配对的值中删除每对重复项(行)中的一个

标签 excel excel-formula pivot-table duplicate-removal vba

我有两列需要从中删除重复的行。对于这个例子:

A                b
sport 1          pippo
sport 1          pippo
sport 1          pluto
sport 2          paperino
sport 2          paperino   
sport 3          gastone

我需要的输出是:
A                b
sport 1          pippo
sport 1          pluto
sport 2          paperino  
sport 3          gastone

我是 Excel 新手,所以不知道要使用哪种公式或 VBA。

我怎样才能做到这一点?

最佳答案

有几种方法可以实现您想要的,其中最简单的必须是@chris neilsen 提到的:

删除重复

只需选择您的两列,然后 Data > Data Tools - Remove Duplicates 接受默认值(可能),然后单击 OK。然而,正如评论中所指出的,并非所有版本的 Excel 都具有此类功能。

注意删除 - 一旦撤消堆栈被覆盖,它们就永远消失了。

还要注意删除重复项并不完全可靠(请参阅下面的高级过滤器中的链接)。

高级过滤器

我倾向于将其作为 Remove Duplicates may have a defect (虽然极少出现!):

必须(或至少强烈建议)确保您的列为此进行了标记。再次选择您的两列,然后选择数据 > 排序和筛选 - 高级,选择复制到另一个位置,选择复制到范围(一个单元格就足够了),显然只检查唯一记录。

这里复制到是一个事实,即您的整个原始列表(重复和全部)被保留,有时可能需要,而无需先创建一个副本来处理。

计数

当删除重复项意味着 时,公式解决方案可能更合适。两个一对等

就像是:

=COUNTIF(B:B,B1)  

在 B1 中(假设您的标签在第 1 行)并复制下来以适应将识别对或其他倍数。达到计数然后过滤以删除所选的选择。

COUNTIF 通常在所有 Excel 版本中都可用(我不记得是否在最早的版本中!)

计数

是仅在最新版本的 Excel 中可用的函数,但允许对“重复”进行更复杂的定义 - 不适用于您的示例。

数据透视表

PT 的聚合 Row Labels 值当然是理所当然的,所以给出删除重复项的外观。 PT 非常有用,无论如何都可能出于其他原因需要它们,因此无需额外费心删除重复项。

以表格形式显示 表格布局可能是最方便的(此处在 A 上方在行标签中使用 b)。这应该显示每个 A/b 对的一个实例 - 除非 A 值不是第一个示例。换句话说,ColumnA 值的显示不会重复 ColumnA 值 - 只是表示“与上述相同”的空白,直到 A 发生变化。我认为最新版本的 Excel 具有在每一行显示 A 值的功能,但在早期版本中“留出余地”很容易。

但问题是,由于 PT 的内容不能以下面建议的方式更改,因此需要在 PT 中显示的数据副本上(而不仅仅是 PT 的另一个版本!)

选择仅在每个“部分”开头具有值的列,主页 > 编辑 > 查找和选择 - 转到特殊...,空白。单击选定单元格之一,输入= 、向上箭头和 CTRL+Enter。

VBA

这是几乎任何“Excel”的解决方案,并且对于删除重复项是可行的,但对于您问题中大小的完整数据样本可能不是“成本效益” - 除非经常需要该过程。

我可能错过了其他一些选择——但毫无疑问,在我刚刚开始使用这个熨平板之前,其他人已经提到过它们。

关于excel - 在两列配对的值中删除每对重复项(行)中的一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21623647/

相关文章:

sql-server - SQL Server 存储过程导出到具有多个工作表的 Excel 工作簿

excel - 这个 Excel 公式有什么问题?

vba - 使用 worksheet.function 将工作表公式更改为 VBA 公式

excel - Excel中的列解析

mysql - 在 MySQL 的一个字段中创建一个包含数据透视表中所有值的 View

excel - 多列与多列查找

vba - 当我运行我的 vba 代码时,Excel 进入 "not responding"模式。这个可以吗?有没有办法消除这个?

vba - 刷新数据透视表的运行时错误 1004

php - Laravel 5.4 如何通过表单请求为用户分配角色?

excel - 如何从命名范围中查找单元格的值