识别两列中的重复单元格值,并将单独的对应列数据列在一起
Identifying duplicate cell values in two columns, and listing separate corresponding column data together
我正在为 excel 使用 VBA,我正在尝试比较两列数据,确定匹配数据所在的行,然后列出相应列中的数据来自与正在测试的值的行匹配的列中的相应数据的同一行。
例如
___A_________B_________C__________D___________E
纽约______1_________2_______达拉斯_____ _ 纽约,
芝加哥______3_________3_______西雅图___ __ 芝加哥、西雅图、休斯顿,
LA __________ 4 _________ 3 _______休斯顿 _____ 洛杉矶、丹佛
波士顿 _______ 5 _________ 4 ______ 丹佛 ___ ____波士顿,
A 列和 B 列的值相互关联,C 列和 D 列的值相互关联。我试图找到一种方法来在 B 列和 C 列中找到匹配值,然后创建一个列,其中列出了相应的 A 和 D 值,用分号分隔。
create a single column of the corresponding A & D values listed
together, delimited by semicolons.
您的意思是 "single column" 是您在 post 中看到的结果的 E 列吗?如果是,也许是这样的?
Sub test123()
Set sh1 = Sheets("Sheet1") 'change as needed
Set Rng = sh1.Range("B2", sh1.Range("B" & Rows.Count).End(xlUp))
For Each cell In Rng
conc = cell.Offset(0, -1).Value
Set c = Range("C:C").Find(cell.Value, lookat:=xlWhole)
If Not c Is Nothing Then
FirstAddress = c.Address
Do
conc = conc & ";" & c.Offset(0, 1)
cell.Offset(0, 3).Value = conc
Set c = Range("C:C").FindNext(c)
Loop While c.Address <> FirstAddress
Else
cell.Offset(0, 3).Value = conc
End If
Next
End Sub
代码假定 B 列中的每个值都是唯一的(如 B 列中的示例数据所示)。
我正在为 excel 使用 VBA,我正在尝试比较两列数据,确定匹配数据所在的行,然后列出相应列中的数据来自与正在测试的值的行匹配的列中的相应数据的同一行。
例如
___A_________B_________C__________D___________E
纽约______1_________2_______达拉斯_____ _ 纽约,
芝加哥______3_________3_______西雅图___ __ 芝加哥、西雅图、休斯顿,
LA __________ 4 _________ 3 _______休斯顿 _____ 洛杉矶、丹佛
波士顿 _______ 5 _________ 4 ______ 丹佛 ___ ____波士顿,
A 列和 B 列的值相互关联,C 列和 D 列的值相互关联。我试图找到一种方法来在 B 列和 C 列中找到匹配值,然后创建一个列,其中列出了相应的 A 和 D 值,用分号分隔。
create a single column of the corresponding A & D values listed together, delimited by semicolons.
您的意思是 "single column" 是您在 post 中看到的结果的 E 列吗?如果是,也许是这样的?
Sub test123()
Set sh1 = Sheets("Sheet1") 'change as needed
Set Rng = sh1.Range("B2", sh1.Range("B" & Rows.Count).End(xlUp))
For Each cell In Rng
conc = cell.Offset(0, -1).Value
Set c = Range("C:C").Find(cell.Value, lookat:=xlWhole)
If Not c Is Nothing Then
FirstAddress = c.Address
Do
conc = conc & ";" & c.Offset(0, 1)
cell.Offset(0, 3).Value = conc
Set c = Range("C:C").FindNext(c)
Loop While c.Address <> FirstAddress
Else
cell.Offset(0, 3).Value = conc
End If
Next
End Sub
代码假定 B 列中的每个值都是唯一的(如 B 列中的示例数据所示)。