如果我有以下数据:
A B C
111 asdews iujfhg
111 oikufjf jasddaf
112 eifjfjc olkdkj
112 eiejdj olokjjfki
112 ioeiurjf oleodks
113 oeiekdkd poldkkmd
我想删除除第一个实例之外的所有重复项,但是对于所有后续重复项,请将该单元格保留为空白。预期结果:
A B C
111 asdews iujfhg
oikufjf jasddaf
112 eifjfjc olkdkj
eiejdj olokjjfki
ioeiurjf oleodks
113 oeiekdkd poldkkmd
我发现删除重复项的唯一方法是标准过滤器,它将删除所有重复项。我不能这样做,因为我有其他cols如B和C有数据。我需要这个的原因是由于我需要导入的程序,如果它具有相同的ID,它将用下一行覆盖每一行。因为我需要它们附加到相同的ID,而不是覆盖,我必须以某种方式管理这个任务。我在多个文档中有大约一百万行来执行此操作,因此如果可能的话,最好使用快速方法。
答案 0 :(得分:13)
这在Excel VBA中非常简单。按 Alt - F11 访问VBE并插入新模块。将以下代码复制并粘贴到模块中并运行它。 在执行此操作之前先备份文件。
Sub RemoveRepeatingStrings()
Dim BaseStr As String, CurrStr As String
Dim EndRow As Long
EndRow = Range("A" & Rows.Count).End(xlUp).Row
BaseStr = Range("A1").Value
Application.ScreenUpdating = False
For Iter = 2 To EndRow
CurrStr = Range("A" & Iter).Value
If CurrStr = BaseStr Then
Range("A" & Iter).Value = vbNullString
Else
BaseStr = Range("A" & Iter).Value
End If
Next Iter
Application.ScreenUpdating = True
End Sub
设置向上:强>
<强>结果:强>
如果有帮助,请告诉我们。