我有两列需要从中删除重复的行。对于这个例子:
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/