Excel:如果这些行中的某些条目仅在一列中重复,如何删除几整行?

Excel: How to delete several entire rows if some entries in these rows are duplicated only in ONE column?

提问人:Alex 提问时间:9/19/2019 更新时间:9/20/2019 访问量:81

问:

我有千分之一行和几列的电子表格。我想删除所有行,但一个初始行除外,该行在某个指定列中有重复的值。

例如:下面我有 3 列和 7 行。我想删除所有实例,除了第一个实例,从“电子表格的底部向上”开始计算,第 1 列包含相同文本的行。在这种情况下,应删除第 1 行(因为第 1 行和第 2 行在第 1 列中都有“aa”),第 5 行和第 6 行也应该删除(因为第 5、6 和 7 行在第 1 列中有“cd”)。

所以最后我应该只剩下:第 2、3、4、7 行。

我正在使用 Excel、Windows 10。请注意,我是一个彻头彻尾的 Excel 菜鸟,所以我真的需要最简单的解决方案。我不知道该怎么做,在谷歌上搜索各种解决方案令人困惑。请原谅我的回答中缺少官方电子表格术语。我将非常感谢您的帮助。谢谢。

aa   alex   jones
aa   tom    graham
ab   scott  paul
ba   scott  williams
cd   amy    wiggins
cd   amy    wilson
cd   frank  spencer
excel 公式

评论

2赞 Plutian 9/19/2019
如果您单击该选项卡并从功能区中选择“删除重复项”选项,它将引导您准确完成该操作。data
0赞 Alex 9/19/2019
请看我对 Plato77 的回应 - “删除重复项”对我没有帮助......
1赞 Alex 9/19/2019
是的,对不起,我的意思是“删除除底部第一个实例之外的所有实例”@Marcucciboy2

答:

1赞 Plato77 9/19/2019 #1

如果您使用公式在名称旁边再放一列,该公式指向具有“aa”等值的列,然后说 =IF(E6=E7,0,1),那么如果该值是您要保留的值,它将放置一个 1,如果它是一个需要删除的值,它将放置一个 0。然后,您可以按此列进行筛选并删除不需要的值。下图显示我让它起作用了:

enter image description here

评论

0赞 riskypenguin 9/19/2019
我认为这是错误的方式,因为 OP 想要一些“从电子表格底部向上计数”的东西
0赞 Alex 9/19/2019
我已经尝试过 Data>Remove 重复项,问题是删除了 A 列中唯一的重复值,但像以前一样删除了相应的行@Plato77
0赞 Alex 9/19/2019
在我上面给出的假设示例中,Data>Remove 重复项有效,但在我真正的电子表格中则不行。我不明白为什么。
0赞 Plato77 9/19/2019
保留底值的标准是什么?就因为它是最后一个?还是有日期字段/其他原因?
0赞 Alex 9/19/2019
根据另一列中的其他一些值,还有另一个原因。但为了论证,让我们说“仅仅因为它是最后一个”
1赞 Marcucciboy2 9/19/2019 #2

这只是一个快速而肮脏的函数,它假设您从 A 列开始具有这些值。

Sub UniqueFromBottom()

    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")

    Dim i As Long
    For i = Range("A" & Rows.count).End(xlUp).Row To 1 Step -1
        If Not dict.exists(Range("A" & i).Value2) Then
            dict.Add Range("A" & i).Value2, ""
        Else
            Range("A" & i).EntireRow.Delete
        End If
    Next i

End Sub

评论

0赞 Plato77 9/20/2019
这是一个非常优雅的解决方案
2赞 Terry W 9/20/2019 #3

首先,在数据集中添加一个索引列,如下所示:

Indexed

将索引列从大到小排序,并将选择范围扩展到所有列:

Sorted

突出显示并使用选项卡下的“删除重复项”功能来删除重复项,如下所示:Column AData

Remove Duplicates

那么你应该有以下内容:

Result

您可以选择将索引列从最小到最大排序,以便数据将按原始顺序显示。