我的 Excel 表中有两列,如下所示。
Column A Column B
87 87
107 107
108 108
117 117
119 119
153 153
170 170
174 174
209 209
409106386989 409014007285
409110099164 174
这里 A 列和 B 列都包含 11 个条目。
现在我必须从两列中找出不相同的条目。
例如,条目 409106386989 和 409110099164 仅出现在 A 列中,而不出现在 B 列中。
所以我必须将这些条目从 A 列中分离出来。
同样,条目 409014007285 仅出现在 B 列中,而不出现在 A 列中。
此外,B 列中有两个条目 174,但 A 列中只有一个条目。
所以我必须将这两个条目,即 409014007285 和 174 从 B 列中分开。
因此输出应该如下所示。
Column A Column B A but not B B but not A
87 87 409106386989 174
107 107 409110099164 409014007285
108 108
117 117
119 119
153 153
170 170
174 174
209 209
409106386989 409014007285
409110099164 174
我正在手动执行此过程,当条目数达到数千个时,这将花费很多时间。
是否可以通过运行一些代码(使用 VB 脚本)来做到这一点......?
答案1
尝试一下:
Sub GetUnique()
Dim N As Long, M As Long, i As Long, K As Long, L As Long
Dim r As Range
N = Cells(Rows.Count, "A").End(xlUp).Row
M = Cells(Rows.Count, "B").End(xlUp).Row
K = 1
For i = 1 To N
v = Cells(i, "A").Value
Set r = Range(Cells(1, 2), Cells(M, 2)).Find(v)
If r Is Nothing Then
Cells(K, "C").Value = v
K = K + 1
End If
Next i
K = 1
For i = 1 To M
v = Cells(i, "B").Value
Set r = Range(Cells(1, 1), Cells(N, 1)).Find(v)
If r Is Nothing Then
Cells(K, "D").Value = v
K = K + 1
End If
Next i
End Sub
编辑#1
该宏处理列中的数据A&B. 输出数据按列放置C&D.
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其工作!
编辑#2
此宏与第一个宏类似,将处理两列中多次出现的相同值A&乙
Sub FindNonDuplicates()
Range("A:A").Copy Range("C1")
Range("B:B").Copy Range("D1")
Dim nC As Long, nD As Long, v As Variant
Dim i As Long, j As Long
nC = Cells(Rows.Count, "C").End(xlUp).Row
nD = Cells(Rows.Count, "D").End(xlUp).Row
For i = nC To 1 Step -1
v = Cells(i, "C").Value
For j = 1 To nD
If v = Cells(j, "D").Value Then
Cells(i, "C").Delete Shift:=xlUp
Cells(j, "D").Delete Shift:=xlUp
nD = nD - 1
GoTo qwerty
End If
Next j
qwerty:
Next i
End Sub