我在“A”和“A”列中有大约400多条记录的数据。列“B”中的各种细节。表格中总共有3000多行 例如:
Column A Column B
CHI150 UPS1
CHI150 TOWER1
CHI150 TOWER2
CHI160 EB1
CHI160 UPS1
CHI160 TOWER1
CHI163 EB1
CHI163 TOWER2
CHI163 UPS2
CHI195 TOWER1
CHI195 EB1
我想连接下面提到的数据。
Column A Column B
CHI150 UPS1, TOWER1, TOWER2
CHI160 EB1, UPS1, TOWER1
CHI163 EB1, TOWER2, UPS2
CHI195 TOWER1, EB1
请提供解决方案&提前致谢
答案 0 :(得分:1)
假设您有A列和A列中的数据。 B分别来自A2和B2细胞..
Sub test()
'change the sheet name as yours
Sheets("Sheet1").Activate
'Change the range as yours and you need update the column as well in cells(rows.count,1)
Set Rng = Range("A2", Cells(Rows.Count, 1).End(xlUp))
Set rng1 = Range("D2", Cells(Rows.Count, 4).End(xlUp))
Range("A2", Cells(Rows.Count, 1).End(xlUp)).Copy
'copy pasteing the column A and removing duplicates
Range("D2").PasteSpecial xlPasteValues
ActiveCell.RemoveDuplicates Columns:=1, Header:=xlNo
' now concordinating the values
For Each cell In rng1
For Each cell1 In Rng
If cell.Value = cell1.Value Then
If cell.Offset(0, 1).Value = "" Then
cell.Offset(0, 1).Value = cell1.Offset(0, 1).Value
Else
cell.Offset(0, 1).Value = cell.Offset(0, 1).Value & ", " & cell1.Offset(0, 1).Value
End If
End If
Next cell1
Next cell
End Sub

上面的宏将在D列表格D2中生成结果。希望这是你期待的......
答案 1 :(得分:-1)
感谢您在问题中进行更改以更好地解释它。
我拿了一张与您的问题类似的样本表,并且能够在新列中获得所需的结果C.尝试以下步骤
将以下公式放在从第2行(即C2)开始的C列的所有行中。这将检查当前行的A列上的值是否与前一行相似,并且应将列B的值附加到C列中前一行的计算值。
= IF(A2 = A1,(C1&","& B2),B2)
对于D列的所有行,将下面的公式放在第1行
中= IF(A1 = A2"""变更&#34)
这应该使用"更改"来填充D列的某些行,然后您可以仅针对包含"更改"的记录过滤列D.作为价值。
这应该可以得到你想要的结果。